summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/window.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/window.rs b/src/window.rs
index 697c0bb..327cbea 100644
--- a/src/window.rs
+++ b/src/window.rs
@@ -19,8 +19,11 @@ pub struct Window {
impl Window {
pub fn new(event_loop: &EventLoopWindowTarget<()>, controller: Box<dyn WindowController>) -> Self {
- let mut builder = winit::window::WindowBuilder::new().with_title(controller.title());
let pixel_scale = controller.pixel_scale().get();
+ let increment = PhysicalSize { width: pixel_scale, height: pixel_scale };
+ let mut builder = winit::window::WindowBuilder::new()
+ .with_title(controller.title())
+ .with_resize_increments(increment);
if let Some(exact_dimensions) = controller.exact_size() {
let exact_size = dim_to_size(exact_dimensions * pixel_scale);
builder = builder
@@ -92,6 +95,11 @@ impl Window {
self.window.set_min_inner_size(size);
let size = self.controller.maximum_size().map(|d| dim_to_size(d * pixel_scale));
self.window.set_max_inner_size(size);
+ if pixel_scale != self.pixel_scale {
+ let increment = PhysicalSize { width: pixel_scale, height: pixel_scale };
+ self.window.set_resize_increments(Some(increment));
+ self.resize_buffer_and_surface(self.surface_dimensions);
+ }
}
}