From 8de87b8f1b917ac0b86b101bb4bc77fd51a2efba Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Sat, 10 Sep 2022 22:43:09 -0400 Subject: fix: sync size of window and viewport --- winit/src/application/state.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'winit/src') diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs index 5e953cb5..6b02736e 100644 --- a/winit/src/application/state.rs +++ b/winit/src/application/state.rs @@ -3,6 +3,7 @@ use crate::conversion; use crate::{Application, Color, Debug, Point, Size, Viewport}; use std::marker::PhantomData; +use winit::dpi::PhysicalSize; use winit::event::{Touch, WindowEvent}; use winit::window::Window; @@ -190,16 +191,18 @@ where self.title = new_title; } - // Update scale factor + // Update scale factor and size let new_scale_factor = application.scale_factor(); - - if self.scale_factor != new_scale_factor { + let Size { width, height } = self.viewport.physical_size(); + let PhysicalSize { width: w_width, height: w_height} = window.inner_size(); + if self.scale_factor != new_scale_factor || (width, height) != (w_width, w_height) { let size = window.inner_size(); self.viewport = Viewport::with_physical_size( Size::new(size.width, size.height), window.scale_factor() * new_scale_factor, ); + self.viewport_version = self.viewport_version.wrapping_add(1); self.scale_factor = new_scale_factor; } -- cgit From b113bb8a097b9ffcb6940be3f84892f206b7132f Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Sat, 10 Sep 2022 23:14:47 -0400 Subject: fix: formatting --- winit/src/application/state.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'winit/src') diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs index 6b02736e..5525cbd5 100644 --- a/winit/src/application/state.rs +++ b/winit/src/application/state.rs @@ -194,8 +194,13 @@ where // Update scale factor and size let new_scale_factor = application.scale_factor(); let Size { width, height } = self.viewport.physical_size(); - let PhysicalSize { width: w_width, height: w_height} = window.inner_size(); - if self.scale_factor != new_scale_factor || (width, height) != (w_width, w_height) { + let PhysicalSize { + width: w_width, + height: w_height, + } = window.inner_size(); + if self.scale_factor != new_scale_factor + || (width, height) != (w_width, w_height) + { let size = window.inner_size(); self.viewport = Viewport::with_physical_size( -- cgit From 1bfd032169f3f297c7d7fa0938991ad122d93429 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 20 Sep 2022 18:40:36 +0200 Subject: Improve code styling in `application::State` --- winit/src/application/state.rs | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'winit/src') diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs index 5525cbd5..9c539548 100644 --- a/winit/src/application/state.rs +++ b/winit/src/application/state.rs @@ -3,7 +3,6 @@ use crate::conversion; use crate::{Application, Color, Debug, Point, Size, Viewport}; use std::marker::PhantomData; -use winit::dpi::PhysicalSize; use winit::event::{Touch, WindowEvent}; use winit::window::Window; @@ -193,18 +192,15 @@ where // Update scale factor and size let new_scale_factor = application.scale_factor(); - let Size { width, height } = self.viewport.physical_size(); - let PhysicalSize { - width: w_width, - height: w_height, - } = window.inner_size(); + let new_size = window.inner_size(); + let current_size = self.viewport.physical_size(); + if self.scale_factor != new_scale_factor - || (width, height) != (w_width, w_height) + || (current_size.width, current_size.height) + != (new_size.width, new_size.height) { - let size = window.inner_size(); - self.viewport = Viewport::with_physical_size( - Size::new(size.width, size.height), + Size::new(new_size.width, new_size.height), window.scale_factor() * new_scale_factor, ); self.viewport_version = self.viewport_version.wrapping_add(1); -- cgit