diff --git a/src/hooks/useScreenRecorder.test.ts b/src/hooks/useScreenRecorder.test.ts index 85811467..d74e884c 100644 --- a/src/hooks/useScreenRecorder.test.ts +++ b/src/hooks/useScreenRecorder.test.ts @@ -164,8 +164,12 @@ describe("shouldUseNativeWindowsCaptureForSource", () => { expect(shouldUseNativeWindowsCaptureForSource({ id: "screen:101:0" })).toBe(true); }); - it("routes window sources through browser capture", () => { - expect(shouldUseNativeWindowsCaptureForSource({ id: "window:123456:0" })).toBe(false); + it("keeps native Windows capture on window sources", () => { + expect(shouldUseNativeWindowsCaptureForSource({ id: "window:123456:0" })).toBe(true); + }); + + it("keeps browser capture for non-desktop sources", () => { + expect(shouldUseNativeWindowsCaptureForSource({ id: "browser-tab:abc" })).toBe(false); }); }); diff --git a/src/hooks/useScreenRecorder.ts b/src/hooks/useScreenRecorder.ts index a382ea3d..c5cd7005 100644 --- a/src/hooks/useScreenRecorder.ts +++ b/src/hooks/useScreenRecorder.ts @@ -213,7 +213,10 @@ export function resolveBrowserCaptureCursorPolicy({ export function shouldUseNativeWindowsCaptureForSource( source: Pick | null | undefined, ): boolean { - return source?.id?.startsWith("screen:") === true; + return ( + source?.id?.startsWith("screen:") === true || + source?.id?.startsWith("window:") === true + ); } export function createProcessedMicrophoneConstraints(