From d158acd752910d6ca4f4e3936437ac01203a4e83 Mon Sep 17 00:00:00 2001 From: Ebu Date: Thu, 4 Dec 2025 09:50:27 +0100 Subject: [PATCH] Update scale factor when resizing window --- plug-airfreshener/src/gui.rs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/plug-airfreshener/src/gui.rs b/plug-airfreshener/src/gui.rs index 4374e6f..5977ede 100644 --- a/plug-airfreshener/src/gui.rs +++ b/plug-airfreshener/src/gui.rs @@ -11,7 +11,8 @@ const DROID_SANS_FONT: &'static [u8] = include_bytes!("../../assets/DroidSans.tt const FRESHENER_IMAGE: &'static [u8] = include_bytes!("../../assets/AirFreshener/sheet.png"); const NOT_SO_FRESH_BG_IMAGE: &'static [u8] = include_bytes!("../../assets/AirFreshener/bg0.png"); -const FRESH_DUMBLEDORE_BG_IMAGE: &'static [u8] = include_bytes!("../../assets/AirFreshener/bg1.png"); +const FRESH_DUMBLEDORE_BG_IMAGE: &'static [u8] = + include_bytes!("../../assets/AirFreshener/bg1.png"); const FRESHENER_FRAMES: usize = 256; const FRESHENER_FRAME_WIDTH: usize = 73; const FRESHENER_FRAME_HEIGHT: usize = 144; @@ -100,12 +101,6 @@ impl PluginGui { this.not_so_fresh_image = Sprite::new(&mut canvas, NOT_SO_FRESH_BG_IMAGE, scaling_factor.clone()); - let canvas_width = canvas.width(); - let editor_width = params.editor_state.size.load().0; - if canvas_width != editor_width { - this.scaling_factor - .store(canvas_width as f32 / editor_width as f32, Ordering::Release); - } this.canvas = Some(canvas); } unsafe { @@ -179,6 +174,8 @@ impl WindowHandler for PluginGui { { use femtovg::Baseline; if let Ok(font) = self.font { + use crate::window::EditorWindow; + let mut y = 5.0; let mut print = |str: &str| { for s in str.lines() { @@ -201,6 +198,8 @@ impl WindowHandler for PluginGui { print(&format!("scaling_factor {:?}", scaling_factor)); print(&format!("mouse_pos {:?}", self.mouse_position)); print(&format!("frame_index {:?}", frame_index)); + print(&format!("windows_size {:?}", EditorWindow::WINDOW_SIZE)); + print(&format!("canvas_size {:?}", (width, height))); } } @@ -218,12 +217,18 @@ impl WindowHandler for PluginGui { event: baseview::Event, ) -> baseview::EventStatus { let setter = ParamSetter::new(self._gui_context.as_ref()); - let scaling_factor = self.scaling_factor.load(Ordering::Acquire); match event { Event::Window(WindowEvent::Resized(size)) => { let phys_size = size.physical_size(); if let Some(canvas) = self.canvas.as_mut() { - canvas.set_size(phys_size.width, phys_size.height, scaling_factor); + let canvas_width = canvas.width(); + let editor_width = self.params.editor_state.size.load().0; + let new_scale_factor = canvas_width as f32 / editor_width as f32; + + self.scaling_factor + .store(new_scale_factor, Ordering::Release); + + canvas.set_size(phys_size.width, phys_size.height, new_scale_factor); } self.dirty = true; }