diff options
| author | user <user@clank> | 2026-08-11 16:45:20 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-11 16:45:20 +0200 |
| commit | a433a998139ad36c9725c8dd3598cd88306ad89a (patch) | |
| tree | 0b20366e242930056d16f991c4196e19fc668cd2 /src | |
| parent | sl0p: optionally render the stacked-pane picker as a grid (diff) | |
| download | sl0ppij-a433a998139ad36c9725c8dd3598cd88306ad89a.tar.gz sl0ppij-a433a998139ad36c9725c8dd3598cd88306ad89a.tar.xz sl0ppij-a433a998139ad36c9725c8dd3598cd88306ad89a.zip | |
sl0p: clear the stale picker region when the layout re-flows
Adding a pane left old borders on screen until a resize forced a full redraw.
Two causes. The picker draws each entry as its own chunk, so the space between
and around the entries was never painted and kept the previous frame's
contents; and adding a pane really does re-flow the whole grid, because a
freshly created pane has no title yet and its "Pane #N" fallback is far wider
than a named one, which widens every cell and drops the column count.
Separately, refresh_or_dissolve_stack_list changed the reserved row count
without forcing a clear, so when the list got shorter the visible pane moved up
and the rows it vacated kept their old contents.
Blanks only the spans no cell covers, never a cell's own columns: chunks are
NOT composited last-wins, so blanking the whole region erased the entries
instead of the stale contents under them -- the first attempt at this fix drew
exactly one entry.
stack_list_row_gaps is a free function so the covering invariant is testable:
gaps and cells must tile each row exactly, with no overlap, across a sweep of
row caps, label widths and member counts.
Diffstat (limited to 'src')
0 files changed, 0 insertions, 0 deletions
