From 6c9a2d4e9b7192c3b0d85b7bd756b5c27239fd70 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Fri, 5 Dec 2025 16:35:22 -0500 Subject: [PATCH] fix: if the new configure matches, don't overwrite state with None --- winit-wayland/src/event_loop/mod.rs | 2 +- winit-wayland/src/state.rs | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/winit-wayland/src/event_loop/mod.rs b/winit-wayland/src/event_loop/mod.rs index 555ab7d1..65c97412 100644 --- a/winit-wayland/src/event_loop/mod.rs +++ b/winit-wayland/src/event_loop/mod.rs @@ -395,7 +395,7 @@ impl EventLoop { app.window_event(&self.active_event_loop, window_id, event); } - if compositor_update.xdg_window_state.is_some() { + if compositor_update.xdg_window_state.take().is_some() { let event = WindowEvent::WindowStateChanged; app.window_event(&self.active_event_loop, window_id, event); } diff --git a/winit-wayland/src/state.rs b/winit-wayland/src/state.rs index 8ff513cc..dc9b9e35 100644 --- a/winit-wayland/src/state.rs +++ b/winit-wayland/src/state.rs @@ -313,11 +313,9 @@ impl WindowHandler for WinitState { self.window_compositor_updates[pos].suggested_bounds |= configure.suggested_bounds != winit_window.last_configure.as_ref().and_then(|last| last.suggested_bounds); - self.window_compositor_updates[pos].xdg_window_state = winit_window - .last_configure - .as_ref() - .is_none_or(|last| last.state != configure.state) - .then_some(configure.state); + if winit_window.last_configure.as_ref().is_none_or(|last| last.state != configure.state) { + self.window_compositor_updates[pos].xdg_window_state = Some(configure.state); + } self.window_compositor_updates[pos].resized |= winit_window.configure(configure, &self.shm, &self.subcompositor_state);