From 93e7135352130ea0a8a5d98744ac90d306cd9187 Mon Sep 17 00:00:00 2001 From: Linkon <116425752+Linkon-lcw@users.noreply.github.com> Date: Mon, 19 Jan 2026 23:54:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BE=A7=E8=BE=B9=E6=A0=8F?= =?UTF-8?q?=E5=9C=A8=E7=BC=A9=E6=94=BE=E6=97=B6=E4=BD=8D=E7=BD=AE=E9=94=99?= =?UTF-8?q?=E4=BD=8D=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/services/SettingsService.ts | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/services/SettingsService.ts b/src/main/services/SettingsService.ts index 9c5a6b9..4a90c8a 100644 --- a/src/main/services/SettingsService.ts +++ b/src/main/services/SettingsService.ts @@ -53,11 +53,35 @@ export class SettingsService extends Service { kind: 'number', defaultValue: 1.0, writePermission: 'admin', - onChanged: (_ctx, next) => { + onChanged: (ctx, next) => { const zoom = Number(next) || 1.0 webContents.getAllWebContents().forEach((wc: any) => { wc.setZoomFactor(zoom) }) + + // 更新全局侧边栏窗口的位置,确保在缩放后位置正确 + const { BrowserWindow, screen } = require('electron') + const sidebarWindow = BrowserWindow.getAllWindows().find((win) => { + try { + return win.webContents.getURL().includes('#global-sidebar') + } catch { + return false + } + }) + + if (sidebarWindow && !sidebarWindow.isDestroyed()) { + const primaryDisplay = screen.getPrimaryDisplay() + const { width, height } = primaryDisplay.workAreaSize + const winWidth = 84 + const winHeight = 300 + + sidebarWindow.setBounds({ + x: width - winWidth, + y: Math.floor(height / 2 - winHeight / 2), + width: winWidth, + height: winHeight + }) + } } } }