Skip to content

Commit

Permalink
Fix windows not being centered properly when system interface is scal…
Browse files Browse the repository at this point in the history
…ed (#8903)

# Objective

Fixes #8765 

## Solution

When windows are created during plugin setup, the scale_factor of a
WindowResolution struct will always be 1.0 (default). The correct scale
factor is set later in flow. To get correct center calculations use the
monitors scale factor directly instead.

## Results
System: Windows 10 Pro (125% scaling)
### main 

![scale_125_without_fix](https://github.com/bevyengine/bevy/assets/644930/df808013-adc9-4300-8930-08ac87cc62b8)

### This PR

![scale_125_with_fix](https://github.com/bevyengine/bevy/assets/644930/c3d73606-d9e3-4f65-b4cc-2a1c20dbb64d)
  • Loading branch information
marlyx authored Jun 21, 2023
1 parent 99de4dd commit db4bfc9
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/winit_windows.rs
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,9 @@ pub fn winit_window_position(
if let Some(monitor) = maybe_monitor {
let screen_size = monitor.size();

let scale_factor = resolution.base_scale_factor();
// We use the monitors scale factor here since WindowResolution.scale_factor
// is not yet populated when windows are created at plugin setup
let scale_factor = monitor.scale_factor();

// Logical to physical window size
let (width, height): (u32, u32) =
Expand Down

0 comments on commit db4bfc9

Please sign in to comment.