From c1ad168c320fee9ddc30fe0fc559af1069dd45b0 Mon Sep 17 00:00:00 2001 From: lawr <15603444+Alawnely@users.noreply.github.com> Date: Thu, 1 Aug 2024 18:26:37 +0800 Subject: [PATCH] fix: Incorrect window size on multi-monitor scaled displays (#2302) see discussion on th-ch#2258 --- src/index.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/index.ts b/src/index.ts index f77078f7..659c27e4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -321,9 +321,11 @@ async function createMainWindow() { const { x: windowX, y: windowY } = windowPosition; const winSize = win.getSize(); const display = screen.getDisplayNearestPoint(windowPosition); + const primaryDisplay = screen.getPrimaryDisplay(); - const scaledWidth = windowSize.width; - const scaledHeight = windowSize.height; + const scaleFactor = is.windows() ? primaryDisplay.scaleFactor / display.scaleFactor : 1; + const scaledWidth = Math.floor(windowSize.width * scaleFactor); + const scaledHeight = Math.floor(windowSize.height * scaleFactor); const scaledX = windowX; const scaledY = windowY; @@ -339,9 +341,9 @@ async function createMainWindow() { console.warn( LoggerPrefix, t('main.console.window.tried-to-render-offscreen', { - winSize: String(winSize), - displaySize: String(display.bounds), - windowPosition: String(windowPosition), + windowSize: String(winSize), + displaySize: JSON.stringify(display.bounds), + position: JSON.stringify(windowPosition), }), ); }