diff options
author | Yves Biener <56591091+yves-biener@users.noreply.github.com> | 2023-02-20 17:31:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-20 17:31:02 +0100 |
commit | cf9f806559553d8df0c05780e02a107add93bafa (patch) | |
tree | 4901d0e8d3aa8f78c8d55e5cf8d279b8a9e2b6e2 /zellij-server/src/tab | |
parent | 03448497174de0f7034db4926ac21130a2ec417b (diff) |
fix(ux): fullscreen navigation (#2117)
* fix(pane): fullscreen navigation in all four directions
* fix(pane): use previous method in previous context
Diffstat (limited to 'zellij-server/src/tab')
-rw-r--r-- | zellij-server/src/tab/mod.rs | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/zellij-server/src/tab/mod.rs b/zellij-server/src/tab/mod.rs index f6cad5aea..8a8133103 100644 --- a/zellij-server/src/tab/mod.rs +++ b/zellij-server/src/tab/mod.rs @@ -1543,6 +1543,34 @@ impl Tab { pub fn are_floating_panes_visible(&self) -> bool { self.floating_panes.panes_are_visible() } + pub fn focus_pane_left_fullscreen(&mut self, client_id: ClientId) { + if !self.is_fullscreen_active() { + return; + } + + self.tiled_panes.focus_pane_left_fullscreen(client_id); + } + pub fn focus_pane_right_fullscreen(&mut self, client_id: ClientId) { + if !self.is_fullscreen_active() { + return; + } + + self.tiled_panes.focus_pane_right_fullscreen(client_id); + } + pub fn focus_pane_up_fullscreen(&mut self, client_id: ClientId) { + if !self.is_fullscreen_active() { + return; + } + + self.tiled_panes.focus_pane_up_fullscreen(client_id); + } + pub fn focus_pane_down_fullscreen(&mut self, client_id: ClientId) { + if !self.is_fullscreen_active() { + return; + } + + self.tiled_panes.focus_pane_down_fullscreen(client_id); + } pub fn switch_next_pane_fullscreen(&mut self, client_id: ClientId) { if !self.is_fullscreen_active() { return; @@ -1553,7 +1581,7 @@ impl Tab { if !self.is_fullscreen_active() { return; } - self.tiled_panes.switch_next_pane_fullscreen(client_id); + self.tiled_panes.switch_prev_pane_fullscreen(client_id); } pub fn set_force_render(&mut self) { self.tiled_panes.set_force_render(); @@ -1833,7 +1861,7 @@ impl Tab { return Ok(false); } if self.tiled_panes.fullscreen_is_active() { - self.switch_next_pane_fullscreen(client_id); + self.focus_pane_left_fullscreen(client_id); return Ok(true); } Ok(self.tiled_panes.move_focus_left(client_id)) @@ -1855,7 +1883,8 @@ impl Tab { return Ok(false); } if self.tiled_panes.fullscreen_is_active() { - return Ok(false); + self.focus_pane_down_fullscreen(client_id); + return Ok(true); } Ok(self.tiled_panes.move_focus_down(client_id)) } @@ -1876,7 +1905,8 @@ impl Tab { return Ok(false); } if self.tiled_panes.fullscreen_is_active() { - return Ok(false); + self.focus_pane_up_fullscreen(client_id); + return Ok(true); } Ok(self.tiled_panes.move_focus_up(client_id)) } @@ -1898,7 +1928,7 @@ impl Tab { return Ok(false); } if self.tiled_panes.fullscreen_is_active() { - self.switch_next_pane_fullscreen(client_id); + self.focus_pane_right_fullscreen(client_id); return Ok(true); } Ok(self.tiled_panes.move_focus_right(client_id)) |