diff --git a/electron/windows.ts b/electron/windows.ts index 478584b55..f31e233e7 100644 --- a/electron/windows.ts +++ b/electron/windows.ts @@ -294,8 +294,6 @@ function setHudOverlayMousePassthrough(ignore: boolean) { } if (hudOverlayRecordingActive) { - hudOverlayFallbackExpanded = false; - applyHudOverlayBounds(); hudOverlayWindow.setIgnoreMouseEvents(false); return; } @@ -639,6 +637,10 @@ export function setHudOverlayRecordingActive(recording: boolean): void { hudOverlayFallbackExpanded = false; applyHudOverlayBounds(); setHudOverlayMousePassthrough(!hudOverlayRecordingActive); + + if (hudOverlayWindow && !hudOverlayWindow.isDestroyed()) { + hudOverlayWindow.setSkipTaskbar(!recording); + } } export function createUpdateToastWindow(): BrowserWindow { diff --git a/src/components/launch/LaunchWindow.tsx b/src/components/launch/LaunchWindow.tsx index d7dc51bc4..a84ef632e 100644 --- a/src/components/launch/LaunchWindow.tsx +++ b/src/components/launch/LaunchWindow.tsx @@ -164,6 +164,7 @@ function LaunchWindowContent() { hudContentRef, hudBarRef, recordingWebcamPreviewContainerRef, + recording, }); const { handleHudMouseEnter, handleHudMouseLeave, beginInteractiveHudAction } = @@ -427,7 +428,7 @@ function LaunchWindowContent() { const hudMode = finalizing ? "finalizing" : recording ? "recording" : "idle"; const useNativeHudBarDrag = - platform === "linux" || hudOverlayMousePassthroughSupported === false; + platform === "linux" || hudOverlayMousePassthroughSupported === false || recording; return ( ; hudBarRef: RefObject; recordingWebcamPreviewContainerRef: RefObject; + recording: boolean; }) { const [recordingHudOffset, setRecordingHudOffset] = useState(DEFAULT_RECORDING_HUD_OFFSET); const [isHudDragging, setIsHudDragging] = useState(false); @@ -34,6 +36,16 @@ export function useHudBarDrag({ const hudDragMoveRafRef = useRef(null); const hudDragPendingPointerRef = useRef<{ clientX: number; clientY: number } | null>(null); + useEffect(() => { + if (recording) { + recordingHudOffsetRef.current = DEFAULT_RECORDING_HUD_OFFSET; + setRecordingHudOffset(DEFAULT_RECORDING_HUD_OFFSET); + if (hudBarTransformRef.current) { + hudBarTransformRef.current.style.transform = "translate3d(0px, 0px, 0)"; + } + } + }, [recording]); + useEffect(() => { recordingHudOffsetRef.current = recordingHudOffset; if (!isHudDraggingRef.current && hudBarTransformRef.current) {