@@ -318,26 +318,45 @@ function Page() {
318318
319319 const displayTargets = useQuery ( ( ) => ( {
320320 ...listDisplaysWithThumbnails ,
321- enabled : hasOpenedDisplayMenu ( ) ,
322321 refetchInterval : false ,
323322 } ) ) ;
324323
325324 const windowTargets = useQuery ( ( ) => ( {
326325 ...listWindowsWithThumbnails ,
327- enabled : hasOpenedWindowMenu ( ) ,
328326 refetchInterval : false ,
329327 } ) ) ;
330328
329+ const screens = useQuery ( ( ) => listScreens ) ;
330+ const windows = useQuery ( ( ) => listWindows ) ;
331+
331332 const hasDisplayTargetsData = ( ) => displayTargets . status === "success" ;
332333 const hasWindowTargetsData = ( ) => windowTargets . status === "success" ;
333334
334- const displayTargetsData = createMemo ( ( ) =>
335- hasDisplayTargetsData ( ) ? displayTargets . data : undefined ,
336- ) ;
335+ const existingDisplayIds = createMemo ( ( ) => {
336+ const currentScreens = screens . data ;
337+ if ( ! currentScreens ) return undefined ;
338+ return new Set ( currentScreens . map ( ( screen ) => screen . id ) ) ;
339+ } ) ;
337340
338- const windowTargetsData = createMemo ( ( ) =>
339- hasWindowTargetsData ( ) ? windowTargets . data : undefined ,
340- ) ;
341+ const displayTargetsData = createMemo ( ( ) => {
342+ if ( ! hasDisplayTargetsData ( ) ) return undefined ;
343+ const ids = existingDisplayIds ( ) ;
344+ if ( ! ids ) return displayTargets . data ;
345+ return displayTargets . data ?. filter ( ( target ) => ids . has ( target . id ) ) ;
346+ } ) ;
347+
348+ const existingWindowIds = createMemo ( ( ) => {
349+ const currentWindows = windows . data ;
350+ if ( ! currentWindows ) return undefined ;
351+ return new Set ( currentWindows . map ( ( win ) => win . id ) ) ;
352+ } ) ;
353+
354+ const windowTargetsData = createMemo ( ( ) => {
355+ if ( ! hasWindowTargetsData ( ) ) return undefined ;
356+ const ids = existingWindowIds ( ) ;
357+ if ( ! ids ) return windowTargets . data ;
358+ return windowTargets . data ?. filter ( ( target ) => ids . has ( target . id ) ) ;
359+ } ) ;
341360
342361 const displayMenuLoading = ( ) =>
343362 ! hasDisplayTargetsData ( ) &&
@@ -430,8 +449,6 @@ function Page() {
430449 else commands . closeTargetSelectOverlays ( ) ;
431450 } ) ;
432451
433- const screens = useQuery ( ( ) => listScreens ) ;
434- const windows = useQuery ( ( ) => listWindows ) ;
435452 const cameras = useQuery ( ( ) => listVideoDevices ) ;
436453 const mics = useQuery ( ( ) => listAudioDevices ) ;
437454
0 commit comments