aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/input/handler.rs
diff options
context:
space:
mode:
authorKunal Mohan <kunalmohan99@gmail.com>2021-03-23 18:25:31 +0530
committerKunal Mohan <kunalmohan99@gmail.com>2021-05-04 20:47:52 +0530
commitbbcea3198892cb005d551a4c3b90c1f02712ace7 (patch)
treeecdb346c3bc699d010d0d939749973ebef4ca21c /src/common/input/handler.rs
parentHide IpcChannel entirely behind OsApi (diff)
downloadsl0ppij-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.rs27
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 => {}
}