Repository navigation
fix(hud): keep pointer interaction when recording starts - #1162
lincoo2019 wants to merge 1 commit into
Conversation
Forcing HUD mouse passthrough on the recording state change made the overlay click-through right after the user pressed Record. The stop button lands almost where the record button was, so the next click fell through to the window below: the timer kept running but the HUD ignored clicks and the native capture could not be stopped. Preserve the hover state reported by the renderer instead, and let the existing mouseleave logic restore passthrough when the pointer leaves the bar.
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Preserve passthrough state electron/windows.ts |
setHudOverlayRecordingActive now passes the stored hudOverlayIgnoringMouse value to setHudOverlayMousePassthrough. |
Priority:
Estimated code review effort: 2 (Simple) | ~5 minutes
Change: Bug fix
Possibly related issues
- Graphic Tablet Input Not Recognized and Recording Controls Become Unresponsive in Recordly #1156: The change preserves the HUD passthrough state when recording starts, which may address the reported unresponsive pause and stop controls. The broader graphic-tablet input symptoms are not addressed here.
Possibly related PRs
- webadderallorg/Recordly#1160: This PR tests HUD pointer interactions; this change preserves the passthrough state that affects those interactions.
Suggested reviewers: webadderall
Merge Risk: 
Minimal · up to ba3a4
-
The focused HUD state-preservation change is mergeable.
Pre-merge checks: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passed-
Full details: Description check
-
Explanation
The description clearly explains the problem, root cause, fix, expected behavior, and manual test plan. It does not use the template headings and omits the type checklist, related issue, screenshots or video, and contributor checklist, but the required change context and testing information are mostly complete.
-
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · 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.
Comment @coderabbitai help to get the list of available commands.
Problem
On Windows, after pressing Record, the HUD overlay could become unresponsive: the timer kept counting and the native capture (
wgc-capture.exe) kept recording, but clicking the stop button did nothing, so the only way out was to kill the app.Root cause
The HUD is a full-window transparent overlay whose interactivity is driven by the renderer: it receives forwarded pointer moves, and calls
hud-overlay-set-ignore-mouse(false)only while the pointer is over an interactive element.setHudOverlayRecordingActive()unconditionally forced passthrough when the recording state changed:This ran right after the user pressed Record, i.e. while the pointer was still sitting on the HUD bar. The window switched to click-through even though the renderer had just reported "interactive", so the next click — targeting the stop button, which appears almost exactly where the record button was — fell through to the window underneath. Since the pointer never moved, no new
mouseoverarrived to restore interaction, and the HUD stayed click-through for the rest of the recording.Measured on Windows 11 while the bug was reproduced:
mousemove/mouseoverevents were still forwarded to the renderer (345/30), butmousedownwas never delivered (0), and the HUD window keptWS_EX_TRANSPARENT.Fix
Keep the hover state the renderer last reported instead of forcing passthrough:
hudOverlayIgnoringMouseis alreadytrue, so behaviour is unchanged.Test plan
Summary by CodeRabbit