summaryrefslogtreecommitdiff
path: root/src/builtins.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 16:44:45 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commitd09c1c36e4d4e1bc57aa14f5ba4c6131b6111429 (patch)
tree62d8d68a486950118af23dc5f623dccc1824d00a /src/builtins.zig
parentb4172e6bde69eb35648f173f4497054d1fb2e0fc (diff)
downloadpardes-d09c1c36e4d4e1bc57aa14f5ba4c6131b6111429.tar.gz
pardes-d09c1c36e4d4e1bc57aa14f5ba4c6131b6111429.zip
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 <[email protected]>
Diffstat (limited to 'src/builtins.zig')
-rw-r--r--src/builtins.zig5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/builtins.zig b/src/builtins.zig
index 76d7dfb0..ed42dfe3 100644
--- a/src/builtins.zig
+++ b/src/builtins.zig
@@ -790,7 +790,8 @@ pub const Newcol = struct {
};
/// Close the pane. `Del k` gives its rows to the open pane above it and
-/// `Del j` to the one below, each falling back to the other side.
+/// `Del j` to the one below, each falling back to the other side. Focus on
+/// it goes with its rows.
pub const Del = struct {
pub const takes_arg = true;
pub fn run(c: Ctx) void {
@@ -821,8 +822,6 @@ pub const Del = struct {
return;
}
c.p.removePane(c.id, to) catch |err| return c.p.reportError(c.id, "close", err);
- // Del k|j is a direction: focus lands where the rows went.
- if (to) |gainer| c.p.active = gainer;
}
};