Skip to content

fix(qt): preserve console controls during stream connection - #1101

Merged
zortos293 merged 1 commit into
devfrom
capy/preserve-console-controls-during
Oct 5, 2026
Merged

zortos293 merged 1 commit into
devfrom
capy/preserve-console-controls-during

Conversation

@zortos293

@zortos293 zortos293 commented Oct 4, 2026 •

Copy link
Copy Markdown
Collaborator

Keep connection controls focused

#1098 made the console video item visible before the first frame so graphics could initialize. The item remained enabled, so a background click reached its native mouse handler and moved keyboard focus from Stop session to the non-playing video item. Gameplay input stayed blocked, but Return no longer activated the shell control.

Keep the console item visible and alive during connection/reconnection, but enable it only while streaming. This prevents pointer and Tab focus from entering the connecting presenter without changing the graphics initialization or overlay input guards.

Matched 960×540 captures and actual QQuickWindow mouse/key events pass on first parent 44296adc, fail on merged 1f29d915, and pass with this fix:

Matched parent, merged, and fixed console focus after the same background click

Regression coverage

  • Extend the existing stream-recovery checks to reject enabled console presenters during connection/reconnection and require the same presenter to become enabled on first presentation. Both checks fail before the fix and pass afterward.
  • Add a real QRhi test proving a visible, disabled presenter initializes and continues rendering without taking pointer or Tab focus. The Vulkan/X11 run passes without skips.
  • Actual console background-click, Tab, and Stop/Return probes pass at 960×540, 1600×900, 1920×1080 fullscreen, and simulated display scale 1.5. Final renders also cover connecting/reconnecting overlays and a first frame arriving behind exit confirmation.
  • Full Qt suite: 408/408 pass. The 27 focused transport/settings/stream checks, changed-QML syntax checks, and localization validation pass.

The audit also compared the exact parent and merge across the shared 44-case screen matrix and Network/Audio/Appearance fixtures, including compact UI scale 1.25, provider/override/pending-write states, resizing, German locale and synthetic long German copy. No additional user-facing regression was confirmed in that coverage.

Linux fixtures use software Vulkan and mocked account/native commands. They do not certify hardware decoding/import, live NVIDIA/alliance transport, physical controllers, Wayland, or monitor/DPR migration. Audit renders use SDR and keep the HDR AI filter off.

Open in Capy

@coderabbitai

coderabbitai Bot commented Oct 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 31db0d97-0887-4aa5-a023-747ef7e9c305

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@zortos293
zortos293 merged commit 2ef6408 into dev Oct 5, 2026
14 checks passed
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