summaryrefslogtreecommitdiff
path: root/src/pardes.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/pardes.zig')
-rw-r--r--src/pardes.zig8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/pardes.zig b/src/pardes.zig
index 3a6e154a..dc2ec59f 100644
--- a/src/pardes.zig
+++ b/src/pardes.zig
@@ -6995,7 +6995,13 @@ pub const Pardes = struct {
var refused = false;
while (p.unplaced.findFirstSet()) |id| {
p.unplaced.unset(id);
- if (p.panes[id] != null) p.removePane(id, null) catch {};
+ if (p.panes[id]) |pane| {
+ // Refused, it was never there: the serial it took is the
+ // next pane's, as a refused Newcol's column serial is.
+ const newest = pane.serial == p.next_serial;
+ p.removePane(id, null) catch {};
+ if (newest and p.panes[id] == null) p.next_serial -= 1;
+ }
refused = true;
}
// A refused pane gone, no pane it squeezed stays under its minimum.