From 128a1caaff729ac13493266e5fe5f1552575b5f1 Mon Sep 17 00:00:00 2001 From: Eric Nelson Date: Sat, 13 Jul 2024 18:37:47 -0700 Subject: [PATCH] prevent running pane manipulation actions when float pane is active --- wezterm-gui/src/spawn.rs | 7 ------- wezterm-gui/src/termwindow/mod.rs | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/wezterm-gui/src/spawn.rs b/wezterm-gui/src/spawn.rs index 45a27b90b..eba1c3746 100644 --- a/wezterm-gui/src/spawn.rs +++ b/wezterm-gui/src/spawn.rs @@ -91,10 +91,6 @@ pub async fn spawn_command_internal( None => anyhow::bail!("no src window when splitting a pane?"), }; if let Some(tab) = mux.get_active_tab_for_window(src_window_id) { - if tab.is_float_active() { - bail!("cannot open split when float is active"); - } - let pane = tab .get_active_pane() .ok_or_else(|| anyhow!("tab to have a pane"))?; @@ -124,9 +120,6 @@ pub async fn spawn_command_internal( None => anyhow::bail!("no src window when float a pane?"), }; if let Some(tab) = mux.get_active_tab_for_window(src_window_id) { - if tab.is_float_active() { - bail!("cannot open split when float is active"); - } let pane = tab .get_active_pane() .ok_or_else(|| anyhow!("tab to have a pane"))?; diff --git a/wezterm-gui/src/termwindow/mod.rs b/wezterm-gui/src/termwindow/mod.rs index 39cec992a..bfd827e67 100644 --- a/wezterm-gui/src/termwindow/mod.rs +++ b/wezterm-gui/src/termwindow/mod.rs @@ -2509,6 +2509,21 @@ impl TermWindow { result => return Ok(result), } + if self.is_float_active() { + match assignment { + ActivatePaneByIndex(..) | + ActivatePaneDirection(..) | + SplitPane(..) | + SplitVertical(..) | + SplitHorizontal(..) | + SpawnTab(..) | + PaneSelect(..) => { + return Ok(PerformAssignmentResult::Handled); + }, + _ => {} + } + } + let window = self.window.as_ref().map(|w| w.clone()); match assignment {