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 May 7, 2021
1 parent c7c2b29 commit 71e2330
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 20 deletions.
25 changes: 9 additions & 16 deletions src/client/tab.rs
Original file line number Diff line number Diff line change
Expand Up @@ -607,23 +607,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 @@ -632,14 +626,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
8 changes: 4 additions & 4 deletions src/server/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -528,11 +528,11 @@ fn init_session(
ScreenInstruction::ChangeMode(mode_info) => {
screen.change_mode(mode_info);
}
ScreenInstruction::ToggleActiveSyncPanes => {
ScreenInstruction::ToggleActiveSyncTab => {
screen
.get_active_tab_mut()
.unwrap()
.toggle_sync_panes_is_active();
.toggle_sync_tab_is_active();
screen.update_tabs();
}
ScreenInstruction::Exit => {
Expand Down Expand Up @@ -781,10 +781,10 @@ fn route_action(action: Action, session: &SessionMetaData, os_input: &dyn Server
.send(ScreenInstruction::SwitchTabPrev)
.unwrap();
}
Action::ToggleActiveSyncPanes => {
Action::ToggleActiveSyncTab => {
session
.send_screen_instructions
.send(ScreenInstruction::ToggleActiveSyncPanes)
.send(ScreenInstruction::ToggleActiveSyncTab)
.unwrap();
}
Action::CloseTab => {
Expand Down

0 comments on commit 71e2330

Please sign in to comment.