On macOS, send a Resized event after ScaleFactorChanged

Fixes #3213.
This commit is contained in:
Nathan Lilienthal 2023-11-06 17:26:02 -05:00 committed by GitHub
parent e9210555c1
commit c89e6df758
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 2 deletions

View file

@ -329,7 +329,7 @@ impl Handler {
) {
if let Some(ref mut callback) = *self.callback.lock().unwrap() {
let new_inner_size = Arc::new(Mutex::new(suggested_size));
let event = Event::WindowEvent {
let scale_factor_changed_event = Event::WindowEvent {
window_id: WindowId(window.id()),
event: WindowEvent::ScaleFactorChanged {
scale_factor,
@ -337,13 +337,19 @@ impl Handler {
},
};
callback.handle_nonuser_event(event);
callback.handle_nonuser_event(scale_factor_changed_event);
let physical_size = *new_inner_size.lock().unwrap();
drop(new_inner_size);
let logical_size = physical_size.to_logical(scale_factor);
let size = NSSize::new(logical_size.width, logical_size.height);
window.setContentSize(size);
let resized_event = Event::WindowEvent {
window_id: WindowId(window.id()),
event: WindowEvent::Resized(physical_size),
};
callback.handle_nonuser_event(resized_event);
}
}
}