ClideMarquee honours reduced motion (MediaQuery.disableAnimations) (T-284)

The status-bar footer marquee drove a raw Ticker whenever its content
overflowed, ignoring MediaQuery.disableAnimations — unlike the turn indicator
(T-273), which stops on the same flag. Two costs: reduced-motion users still
got the scrolling footer, and the perpetual ticker was the historical
pumpAndSettle-hang culprit (its tests cope by only ever pump()-ing).

Unify on the one mechanism: read disableAnimations in didChangeDependencies
(as running_indicator does) and gate the ticker on it via _syncTicker(). Under
reduced motion the marquee never starts the ticker (stops + resets if running)
and renders the child statically (clipped, no looped copy). Toggling the flag
at runtime starts/stops the scroll.

Tests: reduced-motion marquee does not scroll and pumpAndSettle completes (no
hang); flipping the flag off lets an overflowing marquee scroll again.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-08 16:57:25 +02:00
co-authored by Claude Opus 4.8
parent 5241876871
commit d5ec85932d
5 changed files with 104 additions and 4 deletions
+6
View File
@@ -198,6 +198,12 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit.
### Fixed
- The status-bar footer marquee now **honours reduced motion**: when the OS
reduce-motion setting (`MediaQuery.disableAnimations`) is on, a long status
line no longer scrolls — it renders statically (clipped) — matching the turn
indicator, which already obeyed the flag. Unifies the two animations on one
mechanism and removes a `pumpAndSettle` hang the perpetual ticker caused.
(T-284)
- Switching the workspace in place (Open Project/Folder) now rebinds the Claude
pane to the new repo's session instead of keeping the previous repo's
conversation, and drops the old repo's secondary tabs. Separate windows were