summaryrefslogtreecommitdiff
path: root/src/macos.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-21 23:23:22 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:14 -0300
commit8fc6bb0633d7992dad6b28a2d36730689226e096 (patch)
tree0139d5be0d57d93c1af3706d2b1c6b576c005ddb /src/macos.zig
parent50e91395a2b82f586b50eafb57df945f01a3058c (diff)
downloadpardes-8fc6bb0633d7992dad6b28a2d36730689226e096.tar.gz
pardes-8fc6bb0633d7992dad6b28a2d36730689226e096.zip
Stack a pane's transient lines instead of letting the last one win the row
A pane's message, its pending leader chord and a prompt waiting for input all wanted the same row above the tagline. The prompt won it, the leader drew over whatever was there on the right, and renderBodyLayer recomputed "is anything down there" inline to reserve a single row. Three claimants, one row, and two places deciding. Pane.Notices is that decision in one place: a short ordered list of the lines a pane is showing, rebuilt every frame by collectNotices from the state that owns each one. The body layer reserves exactly notices.len rows, the way it already reserves rows for sticky context headers, and the paint pass walks the list and gives each line a row of its own, stacked upward from the tagline. Nothing stores a second copy of the truth, so a line that goes away is simply not added next frame and the rest close the gap. One notice lands on exactly the row the message always had, and the prompt stays nearest the tagline so it keeps its cursor. Last also learned what to do when the jumplist is empty. It used to walk the jumps and, finding nothing, do nothing at all -- which is the ordinary case for a pane that opened beside this one and was never focused, such as the text pane the bare tty layout puts under the shell. It now falls back to neighbourPane: the next pane down the column, wrapping, and any other live pane failing that. Alternating with the neighbour is what Last is for. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Diffstat (limited to 'src/macos.zig')
0 files changed, 0 insertions, 0 deletions