aboutsummaryrefslogtreecommitdiffstats
path: root/src/frames.rs
diff options
context:
space:
mode:
authorDaniel Jankowski <daniel.jankowski@rub.de>2023-09-01 18:56:32 +0200
committerDaniel Jankowski <daniel.jankowski@rub.de>2023-09-01 18:56:32 +0200
commit4be32282f13378dc060d43bc8802402c9bfbc295 (patch)
tree67f7d0083a91413be6cb87ff1746fbe50f2f25ce /src/frames.rs
parentchore: fix README (diff)
downloadsl0pstatus-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.rs26
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();
+ }
+}