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/plugin_api/action.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 '')
| -rw-r--r-- | zellij-utils/src/plugin_api/action.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/zellij-utils/src/plugin_api/action.rs b/zellij-utils/src/plugin_api/action.rs index 1a8ab956..5bb58db3 100644 --- a/zellij-utils/src/plugin_api/action.rs +++ b/zellij-utils/src/plugin_api/action.rs @@ -16,6 +16,7 @@ pub use super::generated_api::api::{ FloatingPaneLayout as ProtobufFloatingPaneLayout, FloatingPlacement as ProtobufFloatingPlacement, GoToTabNamePayload, + HideFloatingPanesPayload, IdAndName, InPlaceConfig as ProtobufInPlaceConfig, KeyModifier as ProtobufKeyModifier, @@ -56,12 +57,14 @@ pub use super::generated_api::api::{ ScrollAtPayload, SearchDirection as ProtobufSearchDirection, SearchOption as ProtobufSearchOption, + ShowFloatingPanesPayload, SplitDirection as ProtobufSplitDirection, SplitSize as ProtobufSplitSize, StackedPlacement as ProtobufStackedPlacement, SwapFloatingLayout as ProtobufSwapFloatingLayout, SwapTiledLayout as ProtobufSwapTiledLayout, SwitchToModePayload, + TabIdAndName, TabLayoutInfo as ProtobufTabLayoutInfo, TiledPaneLayout as ProtobufTiledPaneLayout, TiledPlacement as ProtobufTiledPlacement, @@ -396,6 +399,24 @@ impl TryFrom<ProtobufAction> for Action { None => Ok(Action::ToggleFloatingPanes), } }, + Some(ProtobufActionName::ShowFloatingPanes) => match protobuf_action.optional_payload { + Some(OptionalPayload::ShowFloatingPanesPayload(payload)) => { + Ok(Action::ShowFloatingPanes { + tab_id: payload.tab_id.map(|id| id as usize), + }) + }, + None => Ok(Action::ShowFloatingPanes { tab_id: None }), + _ => Err("Wrong payload for ShowFloatingPanes"), + }, + Some(ProtobufActionName::HideFloatingPanes) => match protobuf_action.optional_payload { + Some(OptionalPayload::HideFloatingPanesPayload(payload)) => { + Ok(Action::HideFloatingPanes { + tab_id: payload.tab_id.map(|id| id as usize), + }) + }, + None => Ok(Action::HideFloatingPanes { tab_id: None }), + _ => Err("Wrong payload for HideFloatingPanes"), + }, Some(ProtobufActionName::CloseFocus) => match protobuf_action.optional_payload { Some(_) => Err("CloseFocus should not have a payload"), None => Ok(Action::CloseFocus), @@ -1306,6 +1327,22 @@ impl TryFrom<Action> for ProtobufAction { name: ProtobufActionName::ToggleFloatingPanes as i32, optional_payload: None, }), + Action::ShowFloatingPanes { tab_id } => Ok(ProtobufAction { + name: ProtobufActionName::ShowFloatingPanes as i32, + optional_payload: Some(OptionalPayload::ShowFloatingPanesPayload( + ShowFloatingPanesPayload { + tab_id: tab_id.map(|id| id as u32), + }, + )), + }), + Action::HideFloatingPanes { tab_id } => Ok(ProtobufAction { + name: ProtobufActionName::HideFloatingPanes as i32, + optional_payload: Some(OptionalPayload::HideFloatingPanesPayload( + HideFloatingPanesPayload { + tab_id: tab_id.map(|id| id as u32), + }, + )), + }), Action::CloseFocus => Ok(ProtobufAction { name: ProtobufActionName::CloseFocus as i32, optional_payload: None, |
