From d68f3c34fdbe73869737738923526ad89d78e342 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 17 May 2024 10:19:56 +0800 Subject: [PATCH] :art: Improve main window position restoration after boot on the Desktop https://github.com/siyuan-note/siyuan/issues/11437 --- app/electron/main.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/app/electron/main.js b/app/electron/main.js index debf13c9f..c724ec7b9 100644 --- a/app/electron/main.js +++ b/app/electron/main.js @@ -268,8 +268,9 @@ const initMainWindow = () => { height: defaultHeight, }, oldWindowState); - // writeLog("windowStat [width=" + windowState.width + ", height=" + windowState.height + "], default [width=" + defaultWidth + ", height=" + defaultHeight + "], workArea [width=" + workArea.width + ", height=" + workArea.height + "]"); + writeLog("windowStat [x=" + windowState.x + ", y=" + windowState.y + ", width=" + windowState.width + ", height=" + windowState.height + "], default [width=" + defaultWidth + ", height=" + defaultHeight + "], workArea [width=" + workArea.width + ", height=" + workArea.height + "]"); + let resetToCenter = false let x = windowState.x; let y = windowState.y; if (workArea) { @@ -278,25 +279,22 @@ const initMainWindow = () => { windowState.width = Math.min(defaultWidth, workArea.width); windowState.height = Math.min(defaultHeight, workArea.height); } - if (x >= workArea.width * 0.8) { - x = 0; - } - if (y >= workArea.height * 0.8) { - y = 0; + + if (x >= workArea.width * 0.8 || y >= workArea.height * 0.8) { + resetToCenter = true; } } + + if (x < 0 || y < 0) { + resetToCenter = true; + } + if (windowState.width < 493) { windowState.width = 493; } if (windowState.height < 376) { windowState.height = 376; } - if (x < 0) { - x = 0; - } - if (y < 0) { - y = 0; - } // 创建主窗体 const currentWindow = new BrowserWindow({ @@ -321,7 +319,7 @@ const initMainWindow = () => { }); remote.enable(currentWindow.webContents); - windowStateInitialized ? currentWindow.setPosition(x, y) : currentWindow.center(); + resetToCenter ? currentWindow.center() : currentWindow.setPosition(x, y); currentWindow.webContents.userAgent = "SiYuan/" + appVer + " https://b3log.org/siyuan Electron " + currentWindow.webContents.userAgent; // set proxy