diff options
| author | Brooks J Rady <b.j.rady@gmail.com> | 2021-03-31 12:13:00 +0100 |
|---|---|---|
| committer | Brooks J Rady <b.j.rady@gmail.com> | 2021-03-31 12:13:00 +0100 |
| commit | 138ba850ebf7df02526990f428207e0f8ec48ece (patch) | |
| tree | 464abc4497e68e0a92ad83da4b2d6403dfd4d427 /src/common | |
| parent | feat(plugin): refactored to a new and more general plugin API (diff) | |
| download | sl0ppij-138ba850ebf7df02526990f428207e0f8ec48ece.tar.gz sl0ppij-138ba850ebf7df02526990f428207e0f8ec48ece.tar.xz sl0ppij-138ba850ebf7df02526990f428207e0f8ec48ece.zip | |
fix(plugin): send mode updates to subscribed plugins on load
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/errors.rs | 4 | ||||
| -rw-r--r-- | src/common/input/handler.rs | 2 | ||||
| -rw-r--r-- | src/common/mod.rs | 8 | ||||
| -rw-r--r-- | src/common/screen.rs | 20 |
4 files changed, 17 insertions, 17 deletions
diff --git a/src/common/errors.rs b/src/common/errors.rs index f5aeae85..56bf27f4 100644 --- a/src/common/errors.rs +++ b/src/common/errors.rs @@ -200,7 +200,7 @@ pub enum ScreenContext { CloseTab, GoToTab, UpdateTabName, - ChangeInputMode, + ChangeMode, } // FIXME: Just deriving EnumDiscriminants from strum will remove the need for any of this!!! @@ -241,7 +241,7 @@ impl From<&ScreenInstruction> for ScreenContext { ScreenInstruction::CloseTab => ScreenContext::CloseTab, ScreenInstruction::GoToTab(_) => ScreenContext::GoToTab, ScreenInstruction::UpdateTabName(_) => ScreenContext::UpdateTabName, - ScreenInstruction::ChangeInputMode(_) => ScreenContext::ChangeInputMode, + ScreenInstruction::ChangeMode(_) => ScreenContext::ChangeMode, } } } diff --git a/src/common/input/handler.rs b/src/common/input/handler.rs index 33f4e5dc..7f73b449 100644 --- a/src/common/input/handler.rs +++ b/src/common/input/handler.rs @@ -130,7 +130,7 @@ impl InputHandler { )) .unwrap(); self.send_screen_instructions - .send(ScreenInstruction::ChangeInputMode(mode)) + .send(ScreenInstruction::ChangeMode(get_mode_info(mode))) .unwrap(); self.send_screen_instructions .send(ScreenInstruction::Render) diff --git a/src/common/mod.rs b/src/common/mod.rs index e895fcc0..a566d655 100644 --- a/src/common/mod.rs +++ b/src/common/mod.rs @@ -37,7 +37,7 @@ use wasm_vm::PluginEnv; use wasm_vm::{wasi_stdout, wasi_write_string, zellij_imports, PluginInstruction}; use wasmer::{ChainableNamedResolver, Instance, Module, Store, Value}; use wasmer_wasi::{Pipe, WasiState}; -use zellij_tile::data::{EventType, InputMode}; +use zellij_tile::data::{EventType, ModeInfo}; #[derive(Serialize, Deserialize, Debug)] pub enum ApiCommand { @@ -256,7 +256,7 @@ pub fn start(mut os_input: Box<dyn OsApi>, opts: CliArgs) { &full_screen_ws, os_input, max_panes, - InputMode::Normal, + ModeInfo::default(), ); loop { let (event, mut err_ctx) = screen @@ -389,8 +389,8 @@ pub fn start(mut os_input: Box<dyn OsApi>, opts: CliArgs) { ScreenInstruction::UpdateTabName(c) => { screen.update_active_tab_name(c); } - ScreenInstruction::ChangeInputMode(input_mode) => { - screen.change_input_mode(input_mode); + ScreenInstruction::ChangeMode(mode_info) => { + screen.change_mode(mode_info); } ScreenInstruction::Quit => { break; diff --git a/src/common/screen.rs b/src/common/screen.rs index 5208834a..178e8be9 100644 --- a/src/common/screen.rs +++ b/src/common/screen.rs @@ -13,7 +13,7 @@ use crate::tab::Tab; use crate::{errors::ErrorContext, wasm_vm::PluginInstruction}; use crate::{layout::Layout, panes::PaneId}; -use zellij_tile::data::{Event, InputMode, TabInfo}; +use zellij_tile::data::{Event, ModeInfo, TabInfo}; /// Instructions that can be sent to the [`Screen`]. #[derive(Debug, Clone)] @@ -50,7 +50,7 @@ pub enum ScreenInstruction { CloseTab, GoToTab(u32), UpdateTabName(Vec<u8>), - ChangeInputMode(InputMode), + ChangeMode(ModeInfo), } /// A [`Screen`] holds multiple [`Tab`]s, each one holding multiple [`panes`](crate::client::panes). @@ -74,7 +74,7 @@ pub struct Screen { active_tab_index: Option<usize>, /// The [`OsApi`] this [`Screen`] uses. os_api: Box<dyn OsApi>, - input_mode: InputMode, + mode_info: ModeInfo, } impl Screen { @@ -87,7 +87,7 @@ impl Screen { full_screen_ws: &PositionAndSize, os_api: Box<dyn OsApi>, max_panes: Option<usize>, - input_mode: InputMode, + mode_info: ModeInfo, ) -> Self { Screen { receiver: receive_screen_instructions, @@ -99,7 +99,7 @@ impl Screen { active_tab_index: None, tabs: BTreeMap::new(), os_api, - input_mode, + mode_info, } } @@ -119,7 +119,7 @@ impl Screen { self.send_app_instructions.clone(), self.max_panes, Some(PaneId::Terminal(pane_id)), - self.input_mode, + self.mode_info.clone(), ); self.active_tab_index = Some(tab_index); self.tabs.insert(tab_index, tab); @@ -261,7 +261,7 @@ impl Screen { self.send_app_instructions.clone(), self.max_panes, None, - self.input_mode, + self.mode_info.clone(), ); tab.apply_layout(layout, new_pids); self.active_tab_index = Some(tab_index); @@ -301,10 +301,10 @@ impl Screen { } self.update_tabs(); } - pub fn change_input_mode(&mut self, input_mode: InputMode) { - self.input_mode = input_mode; + pub fn change_mode(&mut self, mode_info: ModeInfo) { + self.mode_info = mode_info; for tab in self.tabs.values_mut() { - tab.input_mode = self.input_mode; + tab.mode_info = self.mode_info.clone(); } } } |
