diff options
| author | Aram Drevekenin <aram@poor.dev> | 2026-02-25 09:48:47 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-25 09:48:47 +0100 |
| commit | 6e0dd8e51cae440c1453c983740abc6869c46029 (patch) | |
| tree | 7b7a4aaef1fc5df6ad7c56e572aad50f19858f46 /zellij-utils/src/kdl/mod.rs | |
| parent | fix: respect user's cursor choice in web client even when terminal overrides ... (diff) | |
| download | sl0ppij-6e0dd8e51cae440c1453c983740abc6869c46029.tar.gz sl0ppij-6e0dd8e51cae440c1453c983740abc6869c46029.tar.xz sl0ppij-6e0dd8e51cae440c1453c983740abc6869c46029.zip | |
Atomic show hide floating panes (#4764)
* atomic show/hide floating panes (cli, plugin API, keybinding)
* rustfmt
* add pr
Diffstat (limited to 'zellij-utils/src/kdl/mod.rs')
| -rw-r--r-- | zellij-utils/src/kdl/mod.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/zellij-utils/src/kdl/mod.rs b/zellij-utils/src/kdl/mod.rs index 03d55417..ced75920 100644 --- a/zellij-utils/src/kdl/mod.rs +++ b/zellij-utils/src/kdl/mod.rs @@ -63,6 +63,8 @@ macro_rules! parse_kdl_action_arguments { "ToggleActiveSyncTab" => Ok(Action::ToggleActiveSyncTab), "TogglePaneEmbedOrFloating" => Ok(Action::TogglePaneEmbedOrFloating), "ToggleFloatingPanes" => Ok(Action::ToggleFloatingPanes), + "ShowFloatingPanes" => Ok(Action::ShowFloatingPanes { tab_id: None }), + "HideFloatingPanes" => Ok(Action::HideFloatingPanes { tab_id: None }), "CloseFocus" => Ok(Action::CloseFocus), "UndoRenamePane" => Ok(Action::UndoRenamePane), "NoOp" => Ok(Action::NoOp), @@ -729,6 +731,20 @@ impl Action { }, Action::TogglePaneEmbedOrFloating => Some(KdlNode::new("TogglePaneEmbedOrFloating")), Action::ToggleFloatingPanes => Some(KdlNode::new("ToggleFloatingPanes")), + Action::ShowFloatingPanes { tab_id } => { + let mut node = KdlNode::new("ShowFloatingPanes"); + if let Some(id) = tab_id { + node.push(KdlValue::Base10(*id as i64)); + } + Some(node) + }, + Action::HideFloatingPanes { tab_id } => { + let mut node = KdlNode::new("HideFloatingPanes"); + if let Some(id) = tab_id { + node.push(KdlValue::Base10(*id as i64)); + } + Some(node) + }, Action::CloseFocus => Some(KdlNode::new("CloseFocus")), Action::PaneNameInput { input: bytes } => { let mut node = KdlNode::new("PaneNameInput"); @@ -1510,6 +1526,20 @@ impl TryFrom<(&KdlNode, &Options)> for Action { "ToggleFloatingPanes" => { parse_kdl_action_arguments!(action_name, action_arguments, kdl_action) }, + "ShowFloatingPanes" => { + let tab_id = action_arguments + .first() + .and_then(|v| v.value().as_i64()) + .map(|n| n as usize); + Ok(Action::ShowFloatingPanes { tab_id }) + }, + "HideFloatingPanes" => { + let tab_id = action_arguments + .first() + .and_then(|v| v.value().as_i64()) + .map(|n| n as usize); + Ok(Action::HideFloatingPanes { tab_id }) + }, "CloseFocus" => parse_kdl_action_arguments!(action_name, action_arguments, kdl_action), "UndoRenamePane" => { parse_kdl_action_arguments!(action_name, action_arguments, kdl_action) |
