diff --git a/package.json b/package.json index 69cd50e14b..cd139f24d2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "CherryStudio", - "version": "0.8.6", + "version": "0.8.7", "private": true, "description": "A powerful AI assistant for producer.", "main": "./out/main/index.js", diff --git a/src/main/shortcut.ts b/src/main/shortcut.ts index 117c386ddb..aa78193544 100644 --- a/src/main/shortcut.ts +++ b/src/main/shortcut.ts @@ -1,26 +1,45 @@ import { BrowserWindow, globalShortcut } from 'electron' export function registerZoomShortcut(mainWindow: BrowserWindow) { - // 注册放大快捷键 (Ctrl+Plus 或 Cmd+Plus) - globalShortcut.register('CommandOrControl+=', () => { - if (mainWindow) { - const currentZoom = mainWindow.webContents.getZoomFactor() - mainWindow.webContents.setZoomFactor(currentZoom + 0.1) - } - }) + const registerShortcuts = () => { + // 注册放大快捷键 (Ctrl+Plus 或 Cmd+Plus) + globalShortcut.register('CommandOrControl+=', () => { + if (mainWindow) { + const currentZoom = mainWindow.webContents.getZoomFactor() + mainWindow.webContents.setZoomFactor(currentZoom + 0.1) + } + }) - // 注册缩小快捷键 (Ctrl+Minus 或 Cmd+Minus) - globalShortcut.register('CommandOrControl+-', () => { - if (mainWindow) { - const currentZoom = mainWindow.webContents.getZoomFactor() - mainWindow.webContents.setZoomFactor(currentZoom - 0.1) - } - }) + // 注册缩小快捷键 (Ctrl+Minus 或 Cmd+Minus) + globalShortcut.register('CommandOrControl+-', () => { + if (mainWindow) { + const currentZoom = mainWindow.webContents.getZoomFactor() + mainWindow.webContents.setZoomFactor(currentZoom - 0.1) + } + }) - // 注册重置缩放快捷键 (Ctrl+0 或 Cmd+0) - globalShortcut.register('CommandOrControl+0', () => { - if (mainWindow) { - mainWindow.webContents.setZoomFactor(1) - } - }) + // 注册重置缩放快捷键 (Ctrl+0 或 Cmd+0) + globalShortcut.register('CommandOrControl+0', () => { + if (mainWindow) { + mainWindow.webContents.setZoomFactor(1) + } + }) + } + + const unregisterShortcuts = () => { + globalShortcut.unregister('CommandOrControl+=') + globalShortcut.unregister('CommandOrControl+-') + globalShortcut.unregister('CommandOrControl+0') + } + + // 当窗口获得焦点时注册快捷键 + mainWindow.on('focus', registerShortcuts) + + // 当窗口失去焦点时注销快捷键 + mainWindow.on('blur', unregisterShortcuts) + + // 初始注册(如果窗口已经处于焦点状态) + if (mainWindow.isFocused()) { + registerShortcuts() + } }