Skip to content

Commit

Permalink
Fixing bug related to plugin panes and sync mode
Browse files Browse the repository at this point in the history
When sync mode was enabled the input from a plugin pane was being
incorrectly ignored.
  • Loading branch information
dantepippi committed Apr 30, 2021
1 parent 31dbf49 commit b8be307
Showing 1 changed file with 9 additions and 16 deletions.
25 changes: 9 additions & 16 deletions src/client/tab.rs
Original file line number Diff line number Diff line change
Expand Up @@ -596,23 +596,17 @@ impl Tab {
}
pub fn write_to_terminals_on_current_tab(&mut self, input_bytes: Vec<u8>) {
let pane_ids = self.get_pane_ids();
pane_ids.iter().for_each(|pane_id| match pane_id {
PaneId::Terminal(pid) => {
self.write_to_pane_id(input_bytes.clone(), *pid);
}
PaneId::Plugin(_) => {}
pane_ids.iter().for_each(|&pane_id| {
self.write_to_pane_id(input_bytes.clone(), pane_id);
});
}
pub fn write_to_pane_id(&mut self, mut input_bytes: Vec<u8>, pid: RawFd) {
self.os_api
.write_to_tty_stdin(pid, &mut input_bytes)
.expect("failed to write to terminal");
self.os_api.tcdrain(pid).expect("failed to drain terminal");
}
pub fn write_to_active_terminal(&mut self, input_bytes: Vec<u8>) {
match self.get_active_pane_id() {
Some(PaneId::Terminal(active_terminal_id)) => {
let active_terminal = self.get_active_pane().unwrap();
self.write_to_pane_id(input_bytes, self.get_active_pane_id().unwrap());
}
pub fn write_to_pane_id(&mut self, input_bytes: Vec<u8>, pane_id: PaneId) {
match pane_id {
PaneId::Terminal(active_terminal_id) => {
let active_terminal = self.panes.get(&pane_id).unwrap();
let mut adjusted_input = active_terminal.adjust_input_to_terminal(input_bytes);
self.os_api
.write_to_tty_stdin(active_terminal_id, &mut adjusted_input)
Expand All @@ -621,14 +615,13 @@ impl Tab {
.tcdrain(active_terminal_id)
.expect("failed to drain terminal");
}
Some(PaneId::Plugin(pid)) => {
PaneId::Plugin(pid) => {
for key in parse_keys(&input_bytes) {
self.send_plugin_instructions
.send(PluginInstruction::Update(Some(pid), Event::KeyPress(key)))
.unwrap()
}
}
_ => {}
}
}
pub fn get_active_terminal_cursor_position(&self) -> Option<(usize, usize)> {
Expand Down

0 comments on commit b8be307

Please sign in to comment.