From ea599e850455829b95bec45ff158148668f6573a Mon Sep 17 00:00:00 2001 From: Iro <155815508+Iro96@users.noreply.github.com> Date: Tue, 17 Mar 2026 20:19:45 +0700 Subject: [PATCH] fix(stage-tamagotchi): do not pause Live2D on visibility change (desktop switch) (#1410) --- .../src/renderer/stores/stage-window-lifecycle.test.ts | 2 +- .../src/renderer/stores/stage-window-lifecycle.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) 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', () => {