diff options
| author | Aram Drevekenin <aram@poor.dev> | 2026-01-21 15:54:43 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-21 15:54:43 +0100 |
| commit | a56e586b115331076d98bfa67b17d0742e0cda55 (patch) | |
| tree | 983a9d9d237d63fdde435ed085eadff460f92b1d /zellij-server/src/tab | |
| parent | feat(web): add base_url option (#4409) (diff) | |
| download | sl0ppij-a56e586b115331076d98bfa67b17d0742e0cda55.tar.gz sl0ppij-a56e586b115331076d98bfa67b17d0742e0cda55.tar.xz sl0ppij-a56e586b115331076d98bfa67b17d0742e0cda55.zip | |
Fix breaking panes behavior (#4622)
* fix: pane becoming borderless when breaking to new tab
* don't treat floating panes specially when breaking to new tab
* fix tests
* rustfmt
* add pr
Diffstat (limited to 'zellij-server/src/tab')
| -rw-r--r-- | zellij-server/src/tab/mod.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/zellij-server/src/tab/mod.rs b/zellij-server/src/tab/mod.rs index 98743bf8..fac0494f 100644 --- a/zellij-server/src/tab/mod.rs +++ b/zellij-server/src/tab/mod.rs @@ -1265,6 +1265,7 @@ impl Tab { self.add_tiled_pane( floating_pane_to_embed, focused_floating_pane_id, + false, Some(client_id), )?; } @@ -1303,7 +1304,7 @@ impl Tab { format!("failed to find floating pane (ID: {pane_id:?}) to embed",) }) .with_context(err_context)?; - self.add_tiled_pane(floating_pane_to_embed, pane_id, client_id)?; + self.add_tiled_pane(floating_pane_to_embed, pane_id, false, client_id)?; } } else if self.tiled_panes.panes_contain(&pane_id) { if self.get_selectable_tiled_panes().count() <= 1 { @@ -1578,13 +1579,13 @@ impl Tab { if self.floating_panes.panes_are_visible() { self.add_floating_pane(new_pane, pid, None, true) } else { - self.add_tiled_pane(new_pane, pid, client_id) + self.add_tiled_pane(new_pane, pid, false, client_id) } } else { if self.floating_panes.panes_are_visible() { self.add_floating_pane(new_pane, pid, None, false) } else { - self.add_tiled_pane(new_pane, pid, client_id) + self.add_tiled_pane(new_pane, pid, false, client_id) } } } @@ -1687,7 +1688,7 @@ impl Tab { .insert(pid, (is_scrollback_editor, new_pane)); Ok(()) } else { - self.add_tiled_pane(new_pane, pid, client_id) + self.add_tiled_pane(new_pane, pid, false, client_id) } } pub fn new_floating_pane( @@ -5275,7 +5276,7 @@ impl Tab { Ok(()) } else { self.hide_floating_panes(); - self.add_tiled_pane(pane, pane_id, Some(client_id)) + self.add_tiled_pane(pane, pane_id, false, Some(client_id)) } }, None => Ok(()), @@ -5317,7 +5318,7 @@ impl Tab { self.add_floating_pane(pane, pane_id, None, true) .non_fatal(); } else { - self.add_tiled_pane(pane, pane_id, None).non_fatal(); + self.add_tiled_pane(pane, pane_id, false, None).non_fatal(); } }, None => { @@ -5338,7 +5339,7 @@ impl Tab { self.add_floating_pane(pane, pane_id, None, true) .non_fatal(); } else { - self.add_tiled_pane(pane, pane_id, None).non_fatal(); + self.add_tiled_pane(pane, pane_id, false, None).non_fatal(); } }, None => { @@ -5465,12 +5466,14 @@ impl Tab { &mut self, mut pane: Box<dyn Pane>, pane_id: PaneId, + without_relayout: bool, client_id: Option<ClientId>, ) -> Result<()> { if self.tiled_panes.fullscreen_is_active() { self.tiled_panes.unset_fullscreen(); } - let should_auto_layout = self.auto_layout && !self.swap_layouts.is_tiled_damaged(); + let should_auto_layout = + self.auto_layout && !self.swap_layouts.is_tiled_damaged() && !without_relayout; if self.tiled_panes.has_room_for_new_pane() { pane.set_active_at(Instant::now()); if should_auto_layout { |
