From a35fea501560a3d126aad09b59600d9f1a731a9e Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Mon, 31 Mar 2025 22:34:57 +0800 Subject: [PATCH] fix(window-state): window size jump on multi monitor setup (#2583) * fix: window size jump on multi monitor setup * Add change file --- .changes/multi-monitor-window-state.md | 6 ++++++ plugins/window-state/src/lib.rs | 14 +++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 .changes/multi-monitor-window-state.md diff --git a/.changes/multi-monitor-window-state.md b/.changes/multi-monitor-window-state.md new file mode 100644 index 00000000..f3807da9 --- /dev/null +++ b/.changes/multi-monitor-window-state.md @@ -0,0 +1,6 @@ +--- +window-state: patch +window-state-js: patch +--- + +Fix window size gets bigger/smaller on secondary monitor with a different scaling than the primary one diff --git a/plugins/window-state/src/lib.rs b/plugins/window-state/src/lib.rs index a5cf5847..50345b64 100644 --- a/plugins/window-state/src/lib.rs +++ b/plugins/window-state/src/lib.rs @@ -184,13 +184,6 @@ impl WindowExt for Window { self.set_decorations(state.decorated)?; } - if flags.contains(StateFlags::SIZE) { - self.set_size(PhysicalSize { - width: state.width, - height: state.height, - })?; - } - if flags.contains(StateFlags::POSITION) { let position = (state.x, state.y).into(); let size = (state.width, state.height).into(); @@ -214,6 +207,13 @@ impl WindowExt for Window { } } + if flags.contains(StateFlags::SIZE) { + self.set_size(PhysicalSize { + width: state.width, + height: state.height, + })?; + } + if flags.contains(StateFlags::MAXIMIZED) && state.maximized { self.maximize()?; }