From 0b9e61cdbaa26ca8017a811c3f8dcdac12925c42 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Mon, 3 Feb 2025 11:04:22 +0100 Subject: [PATCH] fix(break-pane): strip logical position when inserting pane to new tab (#3973) --- zellij-server/src/panes/tiled_panes/mod.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/zellij-server/src/panes/tiled_panes/mod.rs b/zellij-server/src/panes/tiled_panes/mod.rs index cf9e1bf8..f729e0c7 100644 --- a/zellij-server/src/panes/tiled_panes/mod.rs +++ b/zellij-server/src/panes/tiled_panes/mod.rs @@ -216,8 +216,13 @@ impl TiledPanes { }) .copied() { - if let Some(pane) = self.panes.remove(&pane_id) { - self.add_pane(pane.pid(), pane, true, None); + if let Some(mut pane) = self.panes.remove(&pane_id) { + // we must strip the logical position here because it's likely a straggler from + // this pane's previous tab and would cause chaos if considered in the new one + let mut pane_geom = pane.position_and_size(); + pane_geom.logical_position = None; + pane.set_geom(pane_geom); + self.add_pane_with_existing_geom(pane.pid(), pane); } } }