From 1a6903e32e63e2c10074bcd295aff48a2a5fa6d0 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Mon, 18 Nov 2024 17:00:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=87=8D=E5=90=AF=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BF=9D=E5=AD=98=E7=95=8C=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E7=BC=A9=E6=94=BE=20#354?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/services/ConfigManager.ts | 9 +++++++++ src/main/services/ShortcutService.ts | 14 +++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/services/ConfigManager.ts b/src/main/services/ConfigManager.ts index 2e848370cb..5249bc3765 100644 --- a/src/main/services/ConfigManager.ts +++ b/src/main/services/ConfigManager.ts @@ -35,6 +35,15 @@ export class ConfigManager { this.notifySubscribers('tray', value) } + getZoomFactor(): number { + return this.store.get('zoomFactor', 1) as number + } + + setZoomFactor(factor: number) { + this.store.set('zoomFactor', factor) + this.notifySubscribers('zoomFactor', factor) + } + subscribe(key: string, callback: (newValue: T) => void) { if (!this.subscribers.has(key)) { this.subscribers.set(key, []) diff --git a/src/main/services/ShortcutService.ts b/src/main/services/ShortcutService.ts index bd6426f1c3..06cdfb4a55 100644 --- a/src/main/services/ShortcutService.ts +++ b/src/main/services/ShortcutService.ts @@ -1,35 +1,39 @@ import { BrowserWindow, globalShortcut } from 'electron' +import { configManager } from './ConfigManager' + export function registerZoomShortcut(mainWindow: BrowserWindow) { + // 初始化缩放值 + const initialZoom = configManager.getZoomFactor() + mainWindow.webContents.setZoomFactor(initialZoom) + const registerShortcuts = () => { - // 注册放大快捷键 (Ctrl+Plus 或 Cmd+Plus) globalShortcut.register('CommandOrControl+=', () => { if (mainWindow) { const currentZoom = mainWindow.webContents.getZoomFactor() const newZoom = currentZoom + 0.1 - // Prevent zoom factor from exceeding reasonable limits if (newZoom <= 5.0) { mainWindow.webContents.setZoomFactor(newZoom) + configManager.setZoomFactor(newZoom) // 保存新的缩放值 } } }) - // 注册缩小快捷键 (Ctrl+Minus 或 Cmd+Minus) globalShortcut.register('CommandOrControl+-', () => { if (mainWindow) { const currentZoom = mainWindow.webContents.getZoomFactor() const newZoom = currentZoom - 0.1 - // Prevent zoom factor from going below 0.1 if (newZoom >= 0.1) { mainWindow.webContents.setZoomFactor(newZoom) + configManager.setZoomFactor(newZoom) // 保存新的缩放值 } } }) - // 注册重置缩放快捷键 (Ctrl+0 或 Cmd+0) globalShortcut.register('CommandOrControl+0', () => { if (mainWindow) { mainWindow.webContents.setZoomFactor(1) + configManager.setZoomFactor(1) // 保存默认缩放值 } }) }