From ee29403c132f4ba0babf27639f2a63299de7edca Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Thu, 9 Jul 2026 17:59:06 -0700 Subject: don't draw when minimized (nice and easy) Force-Push: yes Change-Id: I11c96044372dbc9fb10ad5af5d22e72a42080ca7 --- src/main.rs | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 9beb151..ba4ffb7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,6 +24,7 @@ struct Surreality { permanent: RefCell>, for_reinit: RefCell>, window_dressing: RefCell>, + is_minimized: bool, is_reinit_queued: bool, frame_index: usize, } @@ -34,6 +35,7 @@ impl Surreality { permanent: RefCell::new(None), for_reinit: RefCell::new(None), window_dressing: RefCell::new(None), + is_minimized: false, is_reinit_queued: false, frame_index: 0, } @@ -69,10 +71,12 @@ impl Surreality { fn do_frame(&mut self, window_id: WindowId) -> Result<()> { - if self.render(window_id)? || self.is_reinit_queued { - self.is_reinit_queued = false; + if !self.is_minimized { + if self.render(window_id)? || self.is_reinit_queued { + self.is_reinit_queued = false; - self.reinit()?; + self.reinit()?; + } } Ok(()) @@ -196,10 +200,16 @@ impl ApplicationHandler for Surreality { event_loop.exit(); } - WindowEvent::Resized(_) => { - self.is_reinit_queued = true; - if let Err(e) = self.do_frame(window_id) { - eprintln!("Error: {}", e); + WindowEvent::Resized(size) => { + if size.width == 0 || size.height == 0 { + self.is_minimized = true; + } else { + self.is_minimized = false; + self.is_reinit_queued = true; + + if let Err(e) = self.do_frame(window_id) { + eprintln!("Error: {}", e); + } } } -- cgit 1.4.1