diff --git a/apps/stage-tamagotchi/src/renderer/stores/stage-window-lifecycle.test.ts b/apps/stage-tamagotchi/src/renderer/stores/stage-window-lifecycle.test.ts index 2665a3d23..208aeb456 100644 --- a/apps/stage-tamagotchi/src/renderer/stores/stage-window-lifecycle.test.ts +++ b/apps/stage-tamagotchi/src/renderer/stores/stage-window-lifecycle.test.ts @@ -21,7 +21,7 @@ describe('stage window lifecycle helpers', () => { ...createDefaultWindowLifecycleState(), reason: 'hide', visible: false, - })).toBe(true) + })).toBe(false) expect(shouldPauseStageFromLifecycle({ ...createDefaultWindowLifecycleState(), diff --git a/apps/stage-tamagotchi/src/renderer/stores/stage-window-lifecycle.ts b/apps/stage-tamagotchi/src/renderer/stores/stage-window-lifecycle.ts index 87873c5c9..cccc37bfb 100644 --- a/apps/stage-tamagotchi/src/renderer/stores/stage-window-lifecycle.ts +++ b/apps/stage-tamagotchi/src/renderer/stores/stage-window-lifecycle.ts @@ -18,7 +18,10 @@ export function createDefaultWindowLifecycleState(): ElectronWindowLifecycleStat } export function shouldPauseStageFromLifecycle(state: ElectronWindowLifecycleState) { - return !state.visible || state.minimized + // When the app window is moved to another virtual desktop on Windows, it may be treated as not visible + // by the platform even though we still need the stage to keep animating (for window capture usage). + // Only pause when minimized, and keep running for desktop-switch visibility changes. + return state.minimized } export const useStageWindowLifecycleStore = defineStore('stageWindowLifecycle', () => {