wayland/window: Always flag acked move/resize as 'moved' if moved

We only did this if we weren't currently doing an interactive resize,
but since the finish_move_resize() is not the actual interactive resize
but the acknowledgment of the configure event that was emitted as a
result, we shouldn't limit ourself to the same flags used during resize.

This fixes temporarly "stuck" position of attached modal dialogs while
they are being resized.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1163

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1446
This commit is contained in:
Jonas Ådahl 2020-09-18 10:26:42 +02:00 committed by Georges Basile Stavracas Neto
parent aa638f4d48
commit db7967327a

View File

@ -951,9 +951,6 @@ meta_window_wayland_finish_move_resize (MetaWindow *window,
rect.x += dx; rect.x += dx;
rect.y += dy; rect.y += dy;
if (rect.x != window->rect.x || rect.y != window->rect.y)
flags |= META_MOVE_RESIZE_MOVE_ACTION;
} }
else else
{ {
@ -964,6 +961,9 @@ meta_window_wayland_finish_move_resize (MetaWindow *window,
} }
} }
if (rect.x != window->rect.x || rect.y != window->rect.y)
flags |= META_MOVE_RESIZE_MOVE_ACTION;
if (wl_window->has_pending_state_change && acked_configuration) if (wl_window->has_pending_state_change && acked_configuration)
{ {
flags |= META_MOVE_RESIZE_WAYLAND_STATE_CHANGED; flags |= META_MOVE_RESIZE_WAYLAND_STATE_CHANGED;