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) // 保存默认缩放值 } }) }