diff --git a/src/xwayland.rs b/src/xwayland.rs index aba65ef5..25b8b0e0 100644 --- a/src/xwayland.rs +++ b/src/xwayland.rs @@ -807,9 +807,17 @@ impl XwmHandler for State { *context, ); } - if !shell.pending_windows.iter().any(|w| w.surface == window) { - let fullscreen = window.is_fullscreen().then(|| seat.active_output()); - let maximized = window.is_maximized(); + let fullscreen = window.is_fullscreen().then(|| seat.active_output()); + let maximized = window.is_maximized(); + if let Some(pending) = shell + .pending_windows + .iter_mut() + .find(|w| w.surface == window) + { + pending.seat = seat; + pending.fullscreen = fullscreen; + pending.maximized = maximized; + } else { let surface = CosmicSurface::from(window); shell.pending_windows.push(PendingWindow { surface,