From a6cb5a54d192ed17a4be1a063b39f9b34895bc9d Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Mon, 27 Nov 2023 17:26:12 +0100 Subject: [PATCH] Don't call `set_maximize` each frame on Linux Added by @konkitoman in https://github.com/emilk/egui/pull/3172 I'm not sure what the hack is supposed to solve, but calling it every frame is a bad idea, as @ItsEthra reported in https://github.com/emilk/egui/issues/3628#issuecomment-1827943346 * Closes https://github.com/emilk/egui/issues/3620 * Closes https://github.com/emilk/egui/issues/3628 --- crates/egui-winit/src/lib.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/egui-winit/src/lib.rs b/crates/egui-winit/src/lib.rs index 435ece8d645..3036a835cfd 100644 --- a/crates/egui-winit/src/lib.rs +++ b/crates/egui-winit/src/lib.rs @@ -204,12 +204,6 @@ impl State { self.egui_input.time = Some(self.start_time.elapsed().as_secs_f64()); - // TODO remove this in winit 0.29 - // This hack make the window outer_position and size to be valid, X11 Only - // That was happending because winit get the window state before the compositor adds decorations! - #[cfg(all(feature = "x11", target_os = "linux"))] - window.set_maximized(window.is_maximized()); - // On Windows, a minimized window will have 0 width and height. // See: https://github.com/rust-windowing/winit/issues/208 // This solves an issue where egui window positions would be changed when minimizing on Windows. @@ -1403,6 +1397,12 @@ pub fn apply_viewport_builder_to_new_window(window: &Window, builder: &ViewportB log::warn!("set_cursor_hittest failed: {err}"); } } + + // TODO remove this in winit 0.29 + // This hack make the window outer_position and size to be valid, X11 Only + // That was happending because winit get the window state before the compositor adds decorations! + #[cfg(all(feature = "x11", target_os = "linux"))] + window.set_maximized(builder.maximized.unwrap_or(false)); } // ---------------------------------------------------------------------------