From 7fa0fa522123bb195bec97eee6d1f0233c18e23c Mon Sep 17 00:00:00 2001 From: alger Date: Fri, 23 May 2025 19:39:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20macOS=20=E4=B8=8B?= =?UTF-8?q?=E7=82=B9=E5=87=BB=20Dock=20=E5=9B=BE=E6=A0=87=E6=BF=80?= =?UTF-8?q?=E6=B4=BB=E4=B8=BB=E7=AA=97=E5=8F=A3=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/modules/window.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/modules/window.ts b/src/main/modules/window.ts index c5c48c9..cb31d53 100644 --- a/src/main/modules/window.ts +++ b/src/main/modules/window.ts @@ -14,6 +14,9 @@ let mainWindowState = { isMaximized: false }; +// 保存主窗口引用,以便在 activate 事件中使用 +let mainWindowInstance: BrowserWindow | null = null; + /** * 初始化代理设置 */ @@ -183,6 +186,17 @@ export function initializeWindowManager() { } } }); + + // 监听 macOS 下点击 Dock 图标的事件 + app.on('activate', () => { + // 当应用被激活时,检查主窗口是否存在 + if (mainWindowInstance && !mainWindowInstance.isDestroyed()) { + // 如果窗口存在但被隐藏,则显示窗口 + if (!mainWindowInstance.isVisible()) { + mainWindowInstance.show(); + } + } + }); } /** @@ -205,6 +219,7 @@ export function createMainWindow(icon: Electron.NativeImage): BrowserWindow { }); mainWindow.setMinimumSize(1200, 780); + mainWindow.removeMenu(); mainWindow.on('ready-to-show', () => { mainWindow.show(); @@ -229,5 +244,8 @@ export function createMainWindow(icon: Electron.NativeImage): BrowserWindow { mainWindow.loadFile(join(__dirname, '../renderer/index.html')); } + // 保存主窗口引用 + mainWindowInstance = mainWindow; + return mainWindow; }