aboutsummaryrefslogtreecommitdiffstats
path: root/cli/src
diff options
context:
space:
mode:
authoruser <user@clank>2026-07-26 09:32:49 +0200
committeruser <user@clank>2026-08-12 19:34:35 +0200
commit84483b6d6020eee944ada9822c5d6229dc567e04 (patch)
tree956db77c19c50c7840be631970d7cac3bae65509 /cli/src
parentadd obnoxious-working: loud spinners + sl0p-swag status messages (diff)
downloadsl0ppi-84483b6d6020eee944ada9822c5d6229dc567e04.tar.gz
sl0ppi-84483b6d6020eee944ada9822c5d6229dc567e04.tar.xz
sl0ppi-84483b6d6020eee944ada9822c5d6229dc567e04.zip
slop-tool-boxes: stop full-redraw flicker on tall, top-clipped active boxes
An in-flight tool box taller than the viewport (top scrolled off-screen) flickered violently the whole time it was active. Cause: the working spinner (and pi's default spinner) drive ui.requestRender() at ~10-16fps, and the active call slot recomputed a wall-clock pulse color every render, recoloring the TOP border. tui.js falls back to a full-screen redraw when the first changed line is above the viewport (firstChanged < prevViewportTop), so every spinner tick = one full clear+repaint. Fix: once the result slot is streaming (box can be tall), freeze the call slot pulse color, caching built lines per (width, inner). The header/command is static, so the top border is byte-identical between render ticks and never triggers an above-viewport change. The pre-output phase (box still fully visible) keeps the live pulse + ticking runtime; the result slot still pulses its in-viewport bottom border. NOTES.md documents this as flicker #4. Confirmed by repro: massive flicker with the fix reverted, calm with it in.
Diffstat (limited to 'cli/src')
0 files changed, 0 insertions, 0 deletions