(fix) Reject resize_request on surfaces which are already being resized

This commit is contained in:
Peter Krull 2026-02-16 16:47:18 +01:00 committed by Jacob Kauffmann
parent 677be79635
commit b955789a4e

View file

@ -4344,6 +4344,20 @@ impl Shell {
return None;
}
// Reject duplicate resize requests (e.g. Steam sends two
// _NET_WM_MOVERESIZE messages). Creating a new grab while one is
// already active would corrupt the resize state when the old grab's
// ungrab() overwrites the freshly-set Resizing state.
if let Some(ResizeState::Resizing(data)) = *mapped.resize_state.lock().unwrap() {
tracing::warn!(
app_id = mapped.active_window().app_id(),
active_edges = ?data.edges,
requested_edges = ?edges,
"Rejecting duplicate resize request while resize is already active",
);
return None;
}
let floating_layer = if let Some(set) = self
.workspaces
.sets