diff --git a/zellij-server/src/panes/floating_panes/mod.rs b/zellij-server/src/panes/floating_panes/mod.rs index 1f2d770bb1..ed21b010a3 100644 --- a/zellij-server/src/panes/floating_panes/mod.rs +++ b/zellij-server/src/panes/floating_panes/mod.rs @@ -696,8 +696,9 @@ impl FloatingPanes { self.focus_pane_for_all_clients(pane_id); } pub fn focus_pane_if_client_not_focused(&mut self, pane_id: PaneId, client_id: ClientId) { - if self.active_panes.get(&client_id).is_none() { - self.focus_pane(pane_id, client_id) + match self.active_panes.get(&client_id) { + Some(already_focused_pane_id) => self.focus_pane(*already_focused_pane_id, client_id), + None => self.focus_pane(pane_id, client_id), } } pub fn defocus_pane(&mut self, pane_id: PaneId, client_id: ClientId) { diff --git a/zellij-server/src/panes/tiled_panes/mod.rs b/zellij-server/src/panes/tiled_panes/mod.rs index e85911b4ff..71a53a330a 100644 --- a/zellij-server/src/panes/tiled_panes/mod.rs +++ b/zellij-server/src/panes/tiled_panes/mod.rs @@ -588,8 +588,9 @@ impl TiledPanes { } } pub fn focus_pane_if_client_not_focused(&mut self, pane_id: PaneId, client_id: ClientId) { - if self.active_panes.get(&client_id).is_none() { - self.focus_pane(pane_id, client_id) + match self.active_panes.get(&client_id) { + Some(already_focused_pane_id) => self.focus_pane(*already_focused_pane_id, client_id), + None => self.focus_pane(pane_id, client_id), } } pub fn clear_active_panes(&mut self) { diff --git a/zellij-server/src/screen.rs b/zellij-server/src/screen.rs index 5cf1938562..a0e3b300e9 100644 --- a/zellij-server/src/screen.rs +++ b/zellij-server/src/screen.rs @@ -1920,13 +1920,14 @@ pub(crate) fn screen_thread_main( ) => { match client_or_tab_index { ClientOrTabIndex::ClientId(client_id) => { - active_tab_and_connected_client_id!(screen, client_id, |tab: &mut Tab, - client_id: ClientId| tab .new_pane(pid, - initial_pane_title, - should_float, - None, - Some(client_id)), - ?); + active_tab_and_connected_client_id!(screen, client_id, |tab: &mut Tab, client_id: ClientId| { + tab.new_pane(pid, + initial_pane_title, + should_float, + None, + Some(client_id) + ) + }, ?); if let Some(hold_for_command) = hold_for_command { let is_first_run = true; active_tab_and_connected_client_id!( diff --git a/zellij-utils/src/cli.rs b/zellij-utils/src/cli.rs index 957a13c1a0..f8c59f5430 100644 --- a/zellij-utils/src/cli.rs +++ b/zellij-utils/src/cli.rs @@ -292,7 +292,7 @@ pub enum CliAction { requires("command") )] start_suspended: bool, - #[clap(short, long, value_parser)] + #[clap(long, value_parser)] configuration: Option, }, /// Open the specified file in a new zellij pane with your default EDITOR