Skip to content

fix(desktop): keep the maximized pane's right-click menu available while a stream is connecting - #484

Merged
badbread merged 2 commits into
mainfrom
fix/maximized-menu-while-reconnecting
Aug 7, 2026
Merged

fix(desktop): keep the maximized pane's right-click menu available while a stream is connecting#484
badbread merged 2 commits into
mainfrom
fix/maximized-menu-while-reconnecting

Conversation

@badbread

@badbread badbread commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Found during v0.2.0 release testing: in full view (maximized pane), right-clicking after choosing Data saver did nothing until the stream came up — the menu was gone for the whole spin-up window.

Root cause: the maximized pane's entire gesture stack (including onSecondaryTapDown -> _showMaximizedMenu) only rendered on the first-frame branch (_controller != null && _firstFrame). A quality switch tears the player down, and Data saver's on-demand mobile transcode spins up lazily, so the pane sits in the spinner/warm-frame branch for a few seconds with no gesture handler at all — right-click was silently dead, and you couldn't switch back.

Fix: wrap the spinner/warm-frame branch in a GestureDetector carrying the same onSecondaryTapDown (and double-click-to-close). Menu actions don't need a live controller. The wall tile is unaffected (its GestureDetector wraps the whole Stack, so tile right-click already worked mid-reconnect).

flutter analyze lib/ui/wall_screen.dart on winbuild: No issues found!

Part of the v0.2.0 testing batch.

…ile a stream is connecting

In the maximized (full view) pane, the whole gesture stack, including
onSecondaryTapDown -> _showMaximizedMenu, only rendered on the
first-frame branch (_controller != null && _firstFrame). After a
stream-quality switch (e.g. Data saver, whose on-demand mobile transcode
spins up lazily) the pane sits in the spinner/warm-frame branch for a few
seconds with NO gesture handler, so right-click silently did nothing and
the user could not switch back or reach any menu action until the new
stream delivered a frame.

Wrap the spinner/warm-frame branch in a GestureDetector carrying the same
onSecondaryTapDown (and double-click-to-close) as the live branch. Menu
actions do not need a live controller. The wall tile is unaffected (its
GestureDetector wraps the whole Stack).

Found during v0.2.0 release testing.

Signed-off-by: badbread <badbread@users.noreply.github.com>
…s runs

Signed-off-by: badbread <badbread@users.noreply.github.com>
@badbread
badbread merged commit 52f9ea9 into main Aug 7, 2026
6 checks passed
@badbread
badbread deleted the fix/maximized-menu-while-reconnecting branch August 7, 2026 01:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant