Skip to content

Commit 6e3bd4b

Browse files
authored
fix: center window ignores scale factors (#8942)
* fix: center window ignores scale factors * chore: add .changes * clippy
1 parent fdcaf93 commit 6e3bd4b

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"tauri-runtime-wry": patch:bug
3+
---
4+
5+
Fix window centering not taking monitor scale into account

core/tauri-runtime-wry/src/lib.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3354,16 +3354,17 @@ fn create_window<T: UserEvent, F: Fn(RawWindow) + Send + 'static>(
33543354
.window
33553355
.inner_size
33563356
.unwrap_or_else(|| TaoPhysicalSize::new(800, 600).into());
3357+
let scale_factor = monitor.scale_factor();
33573358
let window_size = window_builder
33583359
.inner
33593360
.window
33603361
.inner_size_constraints
3361-
.clamp(desired_size, monitor.scale_factor())
3362-
.to_logical::<i32>(monitor.scale_factor());
3363-
let screen_size = monitor.size();
3364-
let monitor_pos = monitor.position();
3365-
let x = (screen_size.width as i32 - window_size.width) / 2 + monitor_pos.x;
3366-
let y = (screen_size.height as i32 - window_size.height) / 2 + monitor_pos.y;
3362+
.clamp(desired_size, scale_factor)
3363+
.to_logical::<i32>(scale_factor);
3364+
let screen_size = monitor.size().to_logical::<i32>(scale_factor);
3365+
let monitor_pos = monitor.position().to_logical::<i32>(scale_factor);
3366+
let x = (screen_size.width - window_size.width) / 2 + monitor_pos.x;
3367+
let y = (screen_size.height - window_size.height) / 2 + monitor_pos.y;
33673368

33683369
window_builder = window_builder.position(x as f64, y as f64);
33693370
}

0 commit comments

Comments
 (0)