window: Queue resize if window is maximized on wayland

When multiple configure requests sent to the wayland client within a sort period, maximized windows may end up in wrong position and cover struts. To avoid this, queue a resize when the resize event sent by the wayland client results a changed size or position to ensure that the final size and position will be always right.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3601>
This commit is contained in:
Balló György 2024-02-21 13:31:30 +01:00 committed by Marge Bot
parent d434518303
commit 35335e65af

View File

@ -3928,6 +3928,14 @@ meta_window_move_resize_internal (MetaWindow *window,
if (flags & META_MOVE_RESIZE_WAYLAND_CLIENT_RESIZE) if (flags & META_MOVE_RESIZE_WAYLAND_CLIENT_RESIZE)
meta_window_queue (window, META_QUEUE_MOVE_RESIZE); meta_window_queue (window, META_QUEUE_MOVE_RESIZE);
/* This is a workaround for #1627. We still don't have any tests that can
* reproduce this issue reliably and this is not a proper fix! */
if (flags & META_MOVE_RESIZE_WAYLAND_FINISH_MOVE_RESIZE &&
(result & META_MOVE_RESIZE_RESULT_MOVED ||
result & META_MOVE_RESIZE_RESULT_RESIZED) &&
(window->maximized_horizontally || window->maximized_vertically))
meta_window_queue (window, META_QUEUE_MOVE_RESIZE);
} }
/** /**