diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-21 23:23:22 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:14 -0300 |
| commit | 8fc6bb0633d7992dad6b28a2d36730689226e096 (patch) | |
| tree | 0139d5be0d57d93c1af3706d2b1c6b576c005ddb /test/pdf_sections_bench.zig | |
| parent | 50e91395a2b82f586b50eafb57df945f01a3058c (diff) | |
| download | pardes-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 'test/pdf_sections_bench.zig')
0 files changed, 0 insertions, 0 deletions
