aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2025-02-03 11:04:22 +0100
committerGitHub <noreply@github.com>2025-02-03 11:04:22 +0100
commit0b9e61cdbaa26ca8017a811c3f8dcdac12925c42 (patch)
tree50d202595e517af6dbcfd495b6a6000995f7a389
parentdocs(changelog): floating pane coordinate fix (diff)
downloadsl0ppij-0b9e61cdbaa26ca8017a811c3f8dcdac12925c42.tar.gz
sl0ppij-0b9e61cdbaa26ca8017a811c3f8dcdac12925c42.tar.xz
sl0ppij-0b9e61cdbaa26ca8017a811c3f8dcdac12925c42.zip
fix(break-pane): strip logical position when inserting pane to new tab (#3973)
-rw-r--r--zellij-server/src/panes/tiled_panes/mod.rs9
1 files 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);
}
}
}