From 8f0a959d446ced3faa50eba51a49916838592fd4 Mon Sep 17 00:00:00 2001 From: alger Date: Sun, 5 Jul 2026 15:16:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(window):=20=E4=BF=AE=E5=A4=8D=E8=BF=B7?= =?UTF-8?q?=E4=BD=A0=E6=A8=A1=E5=BC=8F=E7=9B=B8=E5=85=B3=E7=9A=84=E4=B8=A4?= =?UTF-8?q?=E5=A4=84=E7=8A=B6=E6=80=81=E6=B1=A1=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 展开播放列表后的 340x400 迷你窗口被误判为普通窗口并持久化到 windowState,导致下次启动主窗口尺寸异常 - 迷你/主界面切换时复位 musicFull,避免残留 true 使返回后第一次点击 歌曲信息被取反关闭、全屏播放页'打不开' Closes #242 --- src/main/modules/window-size.ts | 6 +++++- src/renderer/App.vue | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/modules/window-size.ts b/src/main/modules/window-size.ts index 560570b..84f642e 100644 --- a/src/main/modules/window-size.ts +++ b/src/main/modules/window-size.ts @@ -381,8 +381,12 @@ class WindowSizeManager { } // 检查是否是mini模式窗口(根据窗口大小判断) + // 注意展开播放列表后的 mini 窗口是 340x400,也不能当普通窗口持久化, + // 否则污染 windowState 导致下次启动主窗口尺寸异常(#242) const [currentWidth, currentHeight] = win.getSize(); - const isMiniMode = currentWidth === DEFAULT_MINI_WIDTH && currentHeight === DEFAULT_MINI_HEIGHT; + const isMiniMode = + currentWidth === DEFAULT_MINI_WIDTH && + (currentHeight === DEFAULT_MINI_HEIGHT || currentHeight === DEFAULT_MINI_EXPANDED_HEIGHT); const isMaximized = win.isMaximized(); let state: WindowState; diff --git a/src/renderer/App.vue b/src/renderer/App.vue index 7f64ba2..6fc137e 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -100,6 +100,10 @@ if (isElectron) { window.api.onLanguageChanged(handleSetLanguage); window.electron.ipcRenderer.on('mini-mode', (_, value) => { settingsStore.setMiniMode(value); + // 切换迷你/主界面时复位全屏播放页状态: + // musicFull 残留为 true 会让返回主界面后第一次点击歌曲信息被"取反"关闭, + // 表现为全屏页打不开(#242) + playerStore.setMusicFull(false); if (value) { // 存储当前路由 localStorage.setItem('currentRoute', router.currentRoute.value.path);