From ca92031e8966ed8510e39d8f799c868df75e30c9 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Sun, 8 Oct 2023 12:29:09 +0900 Subject: [PATCH 1/2] hotfix: fixed app launching offscreen --- index.ts | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/index.ts b/index.ts index 4fabd42a..619225f1 100644 --- a/index.ts +++ b/index.ts @@ -225,6 +225,16 @@ function createMainWindow() { }); loadPlugins(win); + const scaleFactor = screen.getAllDisplays().length > 1 ? screen.getPrimaryDisplay().scaleFactor : 1; + + if (windowSize) { + const scaledSize = { + width: windowSize.width / scaleFactor, + height: windowSize.height / scaleFactor, + }; + win.setSize(scaledSize.width, scaledSize.height); + } + if (windowPosition) { const { x, y } = windowPosition; const winSize = win.getSize(); @@ -243,7 +253,11 @@ function createMainWindow() { ); } } else { - win.setPosition(x, y); + const scaledPosition = { + x: windowPosition.x / scaleFactor, + y: windowPosition.y / scaleFactor, + }; + win.setPosition(scaledPosition.x, scaledPosition.y); } } @@ -261,26 +275,6 @@ function createMainWindow() { win.webContents.loadURL(urlToLoad); win.on('closed', onClosed); - const scaleFactor = screen.getAllDisplays().length > 1 ? screen.getPrimaryDisplay().scaleFactor : 1; - const size = config.get('window-size'); - const position = config.get('window-position'); - - if (size && size.width && size.height) { - const scaledSize = { - width: size.width / scaleFactor, - height: size.height / scaleFactor, - }; - win.setSize(scaledSize.width, scaledSize.height); - } - - if (position && position.x && position.y) { - const scaledPosition = { - x: position.x / scaleFactor, - y: position.y / scaleFactor, - }; - win.setPosition(scaledPosition.x, scaledPosition.y); - } - type PiPOptions = typeof config.defaultConfig.plugins['picture-in-picture']; const setPiPOptions = config.plugins.isEnabled('picture-in-picture') // eslint-disable-next-line @typescript-eslint/no-var-requires From 0376a30fbb93d7b93756aae29472888340f54969 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Sun, 8 Oct 2023 12:39:24 +0900 Subject: [PATCH 2/2] fix: prevent name shadowing --- index.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/index.ts b/index.ts index 619225f1..64149126 100644 --- a/index.ts +++ b/index.ts @@ -236,15 +236,15 @@ function createMainWindow() { } if (windowPosition) { - const { x, y } = windowPosition; + const { x: windowX, y: windowY } = windowPosition; const winSize = win.getSize(); const displaySize = screen.getDisplayNearestPoint(windowPosition).bounds; if ( - x + winSize[0] < displaySize.x - 8 - || x - winSize[0] > displaySize.x + displaySize.width - || y < displaySize.y - 8 - || y > displaySize.y + displaySize.height + windowX + winSize[0] < displaySize.x - 8 + || windowX - winSize[0] > displaySize.x + displaySize.width + || windowY < displaySize.y - 8 + || windowY > displaySize.y + displaySize.height ) { // Window is offscreen if (is.dev()) { @@ -254,8 +254,8 @@ function createMainWindow() { } } else { const scaledPosition = { - x: windowPosition.x / scaleFactor, - y: windowPosition.y / scaleFactor, + x: windowX / scaleFactor, + y: windowY / scaleFactor, }; win.setPosition(scaledPosition.x, scaledPosition.y); }