diff options
| author | Daniel Jankowski <daniel.jankowski@rub.de> | 2023-09-01 18:56:32 +0200 |
|---|---|---|
| committer | Daniel Jankowski <daniel.jankowski@rub.de> | 2023-09-01 18:56:32 +0200 |
| commit | 4be32282f13378dc060d43bc8802402c9bfbc295 (patch) | |
| tree | 67f7d0083a91413be6cb87ff1746fbe50f2f25ce /src/frames.rs | |
| parent | chore: fix README (diff) | |
| download | sl0pstatus-4be32282f13378dc060d43bc8802402c9bfbc295.tar.gz sl0pstatus-4be32282f13378dc060d43bc8802402c9bfbc295.tar.xz sl0pstatus-4be32282f13378dc060d43bc8802402c9bfbc295.zip | |
feat: add hide frame for single pane
Diffstat (limited to 'src/frames.rs')
| -rw-r--r-- | src/frames.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/frames.rs b/src/frames.rs new file mode 100644 index 0000000..2a4f56f --- /dev/null +++ b/src/frames.rs @@ -0,0 +1,26 @@ +use zellij_tile::prelude::*; + +pub fn hide_frames_on_single_pane(tabs: Vec<TabInfo>, pane_info: PaneManifest) { + let active_tab = tabs.into_iter().find(|t| t.active); + if active_tab.is_none() { + return; + } + + let active_tab_id = active_tab.unwrap().position; + + let panes = pane_info.panes.get(&active_tab_id); + if panes.is_none() { + return; + } + + let panes = panes.unwrap(); + let panes: Vec<&PaneInfo> = panes.iter().filter(|p| !p.is_plugin).collect(); + + if panes.len() == 1 && panes.first().unwrap().pane_content_x == 1 { + toggle_pane_frames(); + } + + if panes.len() > 1 && panes.first().unwrap().pane_content_x == 0 { + toggle_pane_frames(); + } +} |
