@@ -5,7 +5,11 @@ import path from "node:path";
55import { fileURLToPath } from "node:url" ;
66import { app , BrowserWindow , ipcMain } from "electron" ;
77import { USER_DATA_PATH } from "./appPaths" ;
8- import { getHudOverlayWindowBounds , resizeHudOverlayFallbackBounds } from "./hudOverlayBounds" ;
8+ import {
9+ getHudOverlayWindowBounds ,
10+ resizeHudOverlayFallbackBounds ,
11+ shouldExpandHudOverlayFallback ,
12+ } from "./hudOverlayBounds" ;
913import { getPackagedRendererBaseUrl } from "./rendererServer" ;
1014
1115const electronWindowsDir = path . dirname ( fileURLToPath ( import . meta. url ) ) ;
@@ -29,6 +33,7 @@ let hudOverlayFallbackExpanded = false;
2933let hudOverlayIgnoringMouse = true ;
3034let hudOverlayMouseReassertTimer : NodeJS . Timeout | null = null ;
3135let hudOverlayRecordingActive = false ;
36+ let hudOverlayWebcamPreviewVisible = false ;
3237let countdownWindow : BrowserWindow | null = null ;
3338let updateToastWindow : BrowserWindow | null = null ;
3439
@@ -189,10 +194,15 @@ function getHudOverlayDisplay() {
189194
190195function getHudOverlayBounds ( ) {
191196 const { workArea } = getHudOverlayDisplay ( ) ;
197+ const fallbackExpanded = shouldExpandHudOverlayFallback ( {
198+ fallbackExpanded : hudOverlayFallbackExpanded ,
199+ recordingActive : hudOverlayRecordingActive ,
200+ webcamPreviewVisible : hudOverlayWebcamPreviewVisible ,
201+ } ) ;
192202 return getHudOverlayWindowBounds (
193203 workArea ,
194204 isHudOverlayMousePassthroughSupported ( ) && ! hudOverlayRecordingActive ,
195- hudOverlayFallbackExpanded ,
205+ fallbackExpanded ,
196206 ) ;
197207}
198208
@@ -393,6 +403,18 @@ ipcMain.handle("get-hud-overlay-mouse-passthrough-supported", () => {
393403 } ;
394404} ) ;
395405
406+ ipcMain . on ( "hud-overlay-set-webcam-preview-visible" , ( _event , visible : boolean ) => {
407+ const nextVisible = Boolean ( visible ) ;
408+ if ( hudOverlayWebcamPreviewVisible === nextVisible ) {
409+ return ;
410+ }
411+
412+ hudOverlayWebcamPreviewVisible = nextVisible ;
413+ if ( hudOverlayRecordingActive ) {
414+ applyHudOverlayBounds ( ) ;
415+ }
416+ } ) ;
417+
396418ipcMain . handle ( "set-hud-overlay-capture-protection" , ( _event , enabled : boolean ) => {
397419 loadHudOverlayCaptureProtectionSetting ( ) ;
398420 hudOverlayHiddenFromCapture = Boolean ( enabled ) ;
@@ -415,6 +437,7 @@ ipcMain.handle("set-hud-overlay-capture-protection", (_event, enabled: boolean)
415437export function createHudOverlayWindow ( ) : BrowserWindow {
416438 loadHudOverlayCaptureProtectionSetting ( ) ;
417439 hudOverlayFallbackExpanded = false ;
440+ hudOverlayWebcamPreviewVisible = false ;
418441 const initialBounds = getHudOverlayBounds ( ) ;
419442 let hasShownHudWindow = false ;
420443
0 commit comments