diff options
| author | Aram Drevekenin <aram@poor.dev> | 2025-02-03 11:04:22 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-03 11:04:22 +0100 |
| commit | 0b9e61cdbaa26ca8017a811c3f8dcdac12925c42 (patch) | |
| tree | 50d202595e517af6dbcfd495b6a6000995f7a389 | |
| parent | docs(changelog): floating pane coordinate fix (diff) | |
| download | sl0ppij-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.rs | 9 |
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); } } } |
