fix(vegas): a static pause redraws its plugin for the whole pause

The pause called display(force_clear=True) once and slept out the
duration, so a plugin that rotates its screens or animates (Fantasy
Blitz's playlist) was frozen on its first frame. The pause now calls
display() again at the rotation's rate: once a second, or the high-FPS
interval for a plugin that declares needs_high_fps (or scrolls). Only
the first call clears. A redraw that finds update() holding the plugin
lock is skipped; the pause carries on. Interrupt checks and the
watchdog beat still run every 0.1 s; a raise still ends the pause.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Chuck
2026-10-15 18:06:48 -04:00
co-authored by Claude Opus 5.5
parent 397333ae59
commit 37d2280a15
6 changed files with 170 additions and 17 deletions
+11
View File
@@ -76,6 +76,17 @@ to for one release are gone.
interface can no longer start or stop on-demand sessions or clear errors
on a running display (the mailbox used to carry them).
### Fixes
- Vegas: a `pause` (STATIC) turn redraws its plugin for the whole pause,
once a second, or at the high-FPS rate for a plugin that declares
`needs_high_fps` (or scrolls) -- the rate the rotation uses. The pause used
to call `display()` once and sleep out the duration, so a plugin that
rotates its screens or animates was frozen on its first frame. The first
draw still passes `force_clear=True`; later ones pass nothing. A redraw
that finds the plugin's `update()` holding its lock is skipped; the pause
carries on.
## 3.8.7
Sports consolidation family 10: `src.common.sports_view_model`, the game