From 6832db788adeb7d39d229f5f114da21dde674104 Mon Sep 17 00:00:00 2001 From: Memory <134070804+Memory2314@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:16:06 +0800 Subject: [PATCH] feat: switch triggerMainWindow behavior --- src/main/index.ts | 14 ++++++++++---- src/main/utils/template.ts | 3 ++- .../src/components/settings/general-config.tsx | 16 +++++++++++++++- src/renderer/src/locales/en-US.json | 3 +++ src/renderer/src/locales/zh-CN.json | 3 +++ src/shared/types.d.ts | 1 + 6 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/main/index.ts b/src/main/index.ts index f2ca294..a9771d5 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -434,10 +434,16 @@ export async function createWindow(): Promise { } export function triggerMainWindow(): void { - if (mainWindow?.isVisible()) { - closeMainWindow() - } else { - showMainWindow() + if (mainWindow) { + getAppConfig() + .then(({ triggerMainWindowBehavior = 'show' }) => { + if (triggerMainWindowBehavior === 'toggle' && mainWindow?.isVisible()) { + closeMainWindow() + } else { + showMainWindow() + } + }) + .catch(showMainWindow) } } diff --git a/src/main/utils/template.ts b/src/main/utils/template.ts index e0f5832..9e5156f 100644 --- a/src/main/utils/template.ts +++ b/src/main/utils/template.ts @@ -46,7 +46,8 @@ export const defaultConfig: IAppConfig = { 'substore' ], siderWidth: 250, - sysProxy: { enable: false, mode: 'manual' } + sysProxy: { enable: false, mode: 'manual' }, + triggerMainWindowBehavior: 'show' // 添加默认值 } export const defaultControledMihomoConfig: Partial = { diff --git a/src/renderer/src/components/settings/general-config.tsx b/src/renderer/src/components/settings/general-config.tsx index 30d1c2c..252dabc 100644 --- a/src/renderer/src/components/settings/general-config.tsx +++ b/src/renderer/src/components/settings/general-config.tsx @@ -63,7 +63,8 @@ const GeneralConfig: React.FC = () => { envType = [platform === 'win32' ? 'powershell' : 'bash'], autoCheckUpdate, appTheme = 'system', - language = 'zh-CN' + language = 'zh-CN', + triggerMainWindowBehavior = 'show' // 添加这一行 } = appConfig || {} useEffect(() => { @@ -398,6 +399,19 @@ const GeneralConfig: React.FC = () => { }} /> + + { + patchAppConfig({ triggerMainWindowBehavior: key as 'show' | 'toggle' }) + }} + > + + + +