diff options
| author | Kunal Mohan <kunalmohan99@gmail.com> | 2021-03-23 18:25:31 +0530 |
|---|---|---|
| committer | Kunal Mohan <kunalmohan99@gmail.com> | 2021-05-04 20:47:52 +0530 |
| commit | bbcea3198892cb005d551a4c3b90c1f02712ace7 (patch) | |
| tree | ecdb346c3bc699d010d0d939749973ebef4ca21c /src/common/input/handler.rs | |
| parent | Hide IpcChannel entirely behind OsApi (diff) | |
| download | sl0ppij-bbcea3198892cb005d551a4c3b90c1f02712ace7.tar.gz sl0ppij-bbcea3198892cb005d551a4c3b90c1f02712ace7.tar.xz sl0ppij-bbcea3198892cb005d551a4c3b90c1f02712ace7.zip | |
Synchronize update tabs actions using command_is_executing
Diffstat (limited to 'src/common/input/handler.rs')
| -rw-r--r-- | src/common/input/handler.rs | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/common/input/handler.rs b/src/common/input/handler.rs index b74e2929..0eda77bf 100644 --- a/src/common/input/handler.rs +++ b/src/common/input/handler.rs @@ -238,21 +238,25 @@ impl InputHandler { self.command_is_executing.wait_until_pane_is_closed(); } Action::NewTab => { - self.command_is_executing.opening_new_pane(); + self.command_is_executing.updating_tabs(); self.send_app_instructions .send(AppInstruction::ToPty(PtyInstruction::NewTab)) .unwrap(); - self.command_is_executing.wait_until_new_pane_is_opened(); + self.command_is_executing.wait_until_tabs_are_updated(); } Action::GoToNextTab => { + self.command_is_executing.updating_tabs(); self.send_screen_instructions .send(ScreenInstruction::SwitchTabNext) .unwrap(); + self.command_is_executing.wait_until_tabs_are_updated(); } Action::GoToPreviousTab => { + self.command_is_executing.updating_tabs(); self.send_screen_instructions .send(ScreenInstruction::SwitchTabPrev) .unwrap(); + self.command_is_executing.wait_until_tabs_are_updated(); } Action::ToggleActiveSyncPanes => { self.send_screen_instructions @@ -260,22 +264,37 @@ impl InputHandler { .unwrap(); } Action::CloseTab => { - self.command_is_executing.closing_pane(); + self.command_is_executing.updating_tabs(); self.send_screen_instructions .send(ScreenInstruction::CloseTab) .unwrap(); - self.command_is_executing.wait_until_pane_is_closed(); + self.command_is_executing.wait_until_tabs_are_updated(); } Action::GoToTab(i) => { + self.command_is_executing.updating_tabs(); self.send_screen_instructions .send(ScreenInstruction::GoToTab(i)) .unwrap(); + self.command_is_executing.wait_until_tabs_are_updated(); } Action::TabNameInput(c) => { self.send_screen_instructions .send(ScreenInstruction::UpdateTabName(c)) .unwrap(); } + Action::SaveTabName => { + self.command_is_executing.updating_tabs(); + self.send_plugin_instructions + .send(PluginInstruction::Input( + PluginInputType::Event(EventType::Tab), + vec![b'\n'], + )) + .unwrap(); + self.send_screen_instructions + .send(ScreenInstruction::UpdateTabName(vec![b'\n'])) + .unwrap(); + self.command_is_executing.wait_until_tabs_are_updated(); + } Action::NoOp => {} } |
