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..8017f2249 100644 --- a/electron/windows.ts +++ b/electron/windows.ts @@ -310,10 +310,9 @@ function setHudOverlayMousePassthrough(ignore: boolean) { return; } - if (!isHudOverlayMousePassthroughSupported()) { - if (process.platform !== "linux") { - setHudOverlayFallbackExpanded(!ignore); - } + const mousePassthroughSupported = isHudOverlayMousePassthroughSupported(); + if (!mousePassthroughSupported) { + setHudOverlayFallbackExpanded(!ignore); hudOverlayWindow.setIgnoreMouseEvents(false); return; }