From 72240c7f384f9991f8f282c668a090404d352b2d Mon Sep 17 00:00:00 2001 From: Vanessa Date: Wed, 11 Dec 2024 09:18:30 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/12656 --- app/electron/main.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/electron/main.js b/app/electron/main.js index 6f627a8e2..999e78aa1 100644 --- a/app/electron/main.js +++ b/app/electron/main.js @@ -43,7 +43,7 @@ const windowStatePath = path.join(confDir, "windowState.json"); let bootWindow; let latestActiveWindow; let firstOpen = false; -let workspaces = []; // workspaceDir, id, browserWindow, tray +let workspaces = []; // workspaceDir, id, browserWindow, tray, hideShortcut let kernelPort = 6806; let resetWindowStateOnRestart = false; @@ -1098,6 +1098,12 @@ app.whenReady().then(() => { if (!data.hotkeys || data.hotkeys.length === 0) { return; } + workspaces.find(workspaceItem => { + if (event.sender.id === workspaceItem.browserWindow.webContents.id) { + workspaceItem.hotkeys = data.hotkeys; + return true; + } + }); data.hotkeys.forEach((item, index) => { const shortcut = hotKey2Electron(item); if (!shortcut) { @@ -1111,11 +1117,19 @@ app.whenReady().then(() => { let currentWorkspace; const currentWebContentsId = (latestActiveWindow && !latestActiveWindow.isDestroyed()) ? latestActiveWindow.webContents.id : undefined; workspaces.find(workspaceItem => { - if ((currentWebContentsId || event.sender.id) === workspaceItem.browserWindow.webContents.id) { + if (currentWebContentsId === workspaceItem.browserWindow.webContents.id && workspaceItem.hotkeys[0] === item) { currentWorkspace = workspaceItem; return true; } }); + if (!currentWorkspace) { + workspaces.find(workspaceItem => { + if (workspaceItem.hotkeys[0] === item && event.sender.id === workspaceItem.browserWindow.webContents.id) { + currentWorkspace = workspaceItem; + return true; + } + }); + } if (!currentWorkspace) { return; }