diff options
author | 2020-07-16 18:18:36 +0200 | |
---|---|---|
committer | 2020-07-16 18:18:36 +0200 | |
commit | 4030326a352c365a282980aa2a37d549f4b659ae (patch) | |
tree | a50a3f78aa4fb9f10ecf043d2061495195338b51 /winit | |
parent | da5da3958e3b7fe85e371846a795c4ae05cb2df7 (diff) | |
download | iced-4030326a352c365a282980aa2a37d549f4b659ae.tar.gz iced-4030326a352c365a282980aa2a37d549f4b659ae.tar.bz2 iced-4030326a352c365a282980aa2a37d549f4b659ae.zip |
Handle `ScaleFactorChanged` in `iced_winit`
Diffstat (limited to 'winit')
-rw-r--r-- | winit/src/application.rs | 12 | ||||
-rw-r--r-- | winit/src/conversion.rs | 8 |
2 files changed, 20 insertions, 0 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs index 5b93c8af..1fa282a1 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -360,6 +360,18 @@ pub fn handle_window_event( ); *resized = true; } + WindowEvent::ScaleFactorChanged { + scale_factor: new_scale_factor, + new_inner_size, + } => { + let size = Size::new(new_inner_size.width, new_inner_size.height); + + *viewport = Viewport::with_physical_size( + size, + new_scale_factor * scale_factor, + ); + *resized = true; + } WindowEvent::CloseRequested => { *control_flow = ControlFlow::Exit; } diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs index cfa76e88..3a8f54f5 100644 --- a/winit/src/conversion.rs +++ b/winit/src/conversion.rs @@ -24,6 +24,14 @@ pub fn window_event( height: logical_size.height, })) } + WindowEvent::ScaleFactorChanged { new_inner_size, .. } => { + let logical_size = new_inner_size.to_logical(scale_factor); + + Some(Event::Window(window::Event::Resized { + width: logical_size.width, + height: logical_size.height, + })) + } WindowEvent::CursorMoved { position, .. } => { let position = position.to_logical::<f64>(scale_factor); |