From 9ff34b0a9e91cc007f615fcb2e03021394817cbf Mon Sep 17 00:00:00 2001 From: daniel-c-harvey Date: Fri, 21 Aug 2026 16:03:15 -0400 Subject: [PATCH] Docs: record the FX-drain indicator in COMPLETED.md --- docs/COMPLETED.md | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/docs/COMPLETED.md b/docs/COMPLETED.md index 6c97251..8d3c3f1 100644 --- a/docs/COMPLETED.md +++ b/docs/COMPLETED.md @@ -1701,8 +1701,28 @@ the FX reclaim span before REAPER runs the command so the switch's own undo poin mints first rather than being caught mid-drain. **Left open:** `fxReclaimActivity()` — added in the fourth wave so a UI indicator -could paint the drain's direction — shipped with no caller; a separate, -not-yet-merged branch supplies one. `src/shell/view/CLAUDE.md` still carries a +could paint the drain's direction — shipped with no caller; the caller landed in +the FX-drain indicator entry below. `src/shell/view/CLAUDE.md` still carries a `[verify — DAW]` note on whether a redo can re-strand a track (rebuilding the pre-switch `view_state`, which carries no snapshot for a track that reads parked) — unresolved. + +### FX-drain indicator — the busy cursor and footer readout that give `fxReclaimActivity()` its caller + +Merged to `dev` as `ae305b6`, then `3fa4d10`. The background FX-reclaim drain the +mode-switch redesign above left silent now paints: a busy cursor over the bank +panel plus a footer readout that pre-empts the per-mode track count while the +drain is moving, both driven off `fxReclaimActivity()`. `src/core/ui/` gained its +own three-state `FxDrainState { Idle, Online, Offline }` enum, since `core/` may +not include a shell header; the one map between it and the shell's +`FxReclaimActivity` lives in `panel_input`'s `drainStateNow`. Online reads +"restoring FX", Offline reads "parking FX" — both signed off by Daniel. + +Three things are unverified, as the tree marks them: whether REAPER's docker +routes `WM_SETCURSOR` to the docked child dialog at all is `[verify — DAW]` in +the code — the premise the whole Windows half of the indicator rests on. +`IDC_APPSTARTING` is Windows-only; SWELL ships no equivalent, so on mac/Linux the +footer readout is the whole indicator. And the readout's fit in the footer's +count box is bounded only by a character count, not a real pixel width, since a +pure test can't measure the proportional font without pulling shell drawing into +`core/ui`; overflow end-ellipsizes rather than breaking layout.