From e9a36ae1c43103a08cd6d770f14d00a18b7df4fd Mon Sep 17 00:00:00 2001 From: Max Medina Date: Sun, 19 Jul 2026 12:40:26 +0200 Subject: [PATCH 1/2] feat(hud): add shouldResizeHudOverlayFallback function and tests --- electron/hudOverlayBounds.test.ts | 15 +++++++++++++++ electron/hudOverlayBounds.ts | 7 +++++++ electron/windows.ts | 6 ++++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/electron/hudOverlayBounds.test.ts b/electron/hudOverlayBounds.test.ts index db21e92bd..203e82d17 100644 --- a/electron/hudOverlayBounds.test.ts +++ b/electron/hudOverlayBounds.test.ts @@ -4,6 +4,7 @@ import { getHudOverlayWindowBounds, resizeHudOverlayFallbackBounds, shouldExpandHudOverlayFallback, + shouldResizeHudOverlayFallback, } from "./hudOverlayBounds"; describe("getHudOverlayWindowBounds", () => { @@ -186,3 +187,17 @@ describe("shouldExpandHudOverlayFallback", () => { ).toBe(false); }); }); + +describe("shouldResizeHudOverlayFallback", () => { + it("allows non-passthrough HUD windows to expand for menus when idle", () => { + expect(shouldResizeHudOverlayFallback(false, false)).toBe(true); + }); + + it("does not resize full passthrough HUD windows", () => { + expect(shouldResizeHudOverlayFallback(true, false)).toBe(false); + }); + + it("keeps the recording HUD compact in non-passthrough mode", () => { + expect(shouldResizeHudOverlayFallback(false, true)).toBe(false); + }); +}); \ No newline at end of file diff --git a/electron/hudOverlayBounds.ts b/electron/hudOverlayBounds.ts index 8c51b88c7..0c0e3887a 100644 --- a/electron/hudOverlayBounds.ts +++ b/electron/hudOverlayBounds.ts @@ -50,6 +50,13 @@ export function shouldExpandHudOverlayFallback({ return fallbackExpanded || (recordingActive && webcamPreviewVisible); } +export function shouldResizeHudOverlayFallback( + mousePassthroughSupported: boolean, + recordingActive: boolean, +): boolean { + return !mousePassthroughSupported && !recordingActive; +} + export function resizeHudOverlayFallbackBounds( workArea: HudOverlayWorkArea, currentBounds: HudOverlayWorkArea, diff --git a/electron/windows.ts b/electron/windows.ts index 55f6314cd..51fff19d6 100644 --- a/electron/windows.ts +++ b/electron/windows.ts @@ -9,6 +9,7 @@ import { getHudOverlayWindowBounds, resizeHudOverlayFallbackBounds, shouldExpandHudOverlayFallback, + shouldResizeHudOverlayFallback, } from "./hudOverlayBounds"; import { getPackagedRendererBaseUrl } from "./rendererServer"; @@ -310,8 +311,9 @@ function setHudOverlayMousePassthrough(ignore: boolean) { return; } - if (!isHudOverlayMousePassthroughSupported()) { - if (process.platform !== "linux") { + const mousePassthroughSupported = isHudOverlayMousePassthroughSupported(); + if (!mousePassthroughSupported) { + if (shouldResizeHudOverlayFallback(mousePassthroughSupported, hudOverlayRecordingActive)) { setHudOverlayFallbackExpanded(!ignore); } hudOverlayWindow.setIgnoreMouseEvents(false); From b4d414c27fe18c12b94810ea731b2100246e60c2 Mon Sep 17 00:00:00 2001 From: Max Medina Date: Sun, 19 Jul 2026 22:51:05 +0200 Subject: [PATCH 2/2] fix(hud): simplify fallback expansion logic in mouse passthrough handling --- electron/windows.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/electron/windows.ts b/electron/windows.ts index 51fff19d6..8017f2249 100644 --- a/electron/windows.ts +++ b/electron/windows.ts @@ -9,7 +9,6 @@ import { getHudOverlayWindowBounds, resizeHudOverlayFallbackBounds, shouldExpandHudOverlayFallback, - shouldResizeHudOverlayFallback, } from "./hudOverlayBounds"; import { getPackagedRendererBaseUrl } from "./rendererServer"; @@ -313,9 +312,7 @@ function setHudOverlayMousePassthrough(ignore: boolean) { const mousePassthroughSupported = isHudOverlayMousePassthroughSupported(); if (!mousePassthroughSupported) { - if (shouldResizeHudOverlayFallback(mousePassthroughSupported, hudOverlayRecordingActive)) { - setHudOverlayFallbackExpanded(!ignore); - } + setHudOverlayFallbackExpanded(!ignore); hudOverlayWindow.setIgnoreMouseEvents(false); return; }