From d09c1c36e4d4e1bc57aa14f5ba4c6131b6111429 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Mon, 28 Sep 2026 16:44:45 -0300 Subject: Focus on a closed pane goes to the pane that takes its place, never to the one focused before Dogfood closed a pane in one column and focus jumped to another column, only because that pane was focused last. Now removePane decides for every route (Del, a ctl del, a command pane's end, a 9P remove, a stillborn scratch replaced): the pane that grew into the rows, or the scratch standing in an emptied column; removeColumn gives it to the pane level with it in the column that takes the width. Closing an unfocused pane leaves focus alone. The per-caller focus lines in Del and replaceStillborn are gone, and so is prevFocus. Co-Authored-By: Claude Opus 5.5 --- test/snapshots/layout-close.golden | 2 +- test/snapshots/layout-close.snap | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/snapshots/layout-close.golden b/test/snapshots/layout-close.golden index 6da1cf3d..a7d159b5 100644 --- a/test/snapshots/layout-close.golden +++ b/test/snapshots/layout-close.golden @@ -39,7 +39,7 @@ |6: |7: |8: -== snap exit grid=140x41 cursor=39,8 +== snap exit grid=140x41 cursor=4,8 |10: |11: |12: diff --git a/test/snapshots/layout-close.snap b/test/snapshots/layout-close.snap index 50a11cc3..4ae3e31f 100644 --- a/test/snapshots/layout-close.snap +++ b/test/snapshots/layout-close.snap @@ -35,8 +35,8 @@ key k stable 700 10000 snap del # exit the (now) 2nd shell through its real tty: pty EOF, again only the pane -# above absorbs — and focus falls back to the -# pane that had it before this one (the moved-out column), not to slot 0 +# above absorbs — and takes the focus too, not the pane that had it before +# this one (the moved-out column) press left 40 9 release left 40 9 stable 400 5000 -- cgit v1.3