From 12bc0b7e7118c9a16122492138643146c66de232 Mon Sep 17 00:00:00 2001 From: Colin Date: Mon, 6 May 2024 10:44:35 +0100 Subject: [PATCH] desktop: Skip waiting for resize event after resize fails --- desktop/src/app.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/desktop/src/app.rs b/desktop/src/app.rs index 14b1c97ca..32c7b5eb9 100644 --- a/desktop/src/app.rs +++ b/desktop/src/app.rs @@ -420,12 +420,14 @@ impl App { ); let viewport_size = self.window.inner_size(); + let mut window_resize_denied = false; if let Some(new_viewport_size) = self.window.request_inner_size(window_size) { if new_viewport_size != viewport_size { self.gui.borrow_mut().resize(new_viewport_size); } else { tracing::warn!("Unable to resize window"); + window_resize_denied = true; } } self.window.set_fullscreen(if self.start_fullscreen { @@ -438,9 +440,9 @@ impl App { let viewport_size = self.window.inner_size(); // On X11 (and possibly other platforms), the window size is not updated immediately. - // Wait for the window to be resized to the requested size before we start running - // the SWF (which can observe the viewport size in "noScale" mode) - if window_size != viewport_size.into() { + // On a successful resize request, wait for the window to be resized to the requested size + // before we start running the SWF (which can observe the viewport size in "noScale" mode) + if !window_resize_denied && window_size != viewport_size.into() { loaded = LoadingState::WaitingForResize; } else { loaded = LoadingState::Loaded;