window: Move all attached windows with parent

We'd break the loop for moving attached windows at the first window,
meaning we'd only ever move a single attached dialogs or popup if it was
the first window in the list. This doesn't work out well when there are
multiple popups open, so don't break out of the loop at all until all
windows are potentially moved.

This fixes an issue in gtk4 where one or more non-grabbing popups would
end up unattached if there were more than one and the parent window was
moved.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/592
This commit is contained in:
Jonas Ådahl 2019-05-24 10:52:40 +02:00 committed by Florian Müllner
parent b01edc22f3
commit 439afb3f19

View File

@ -3812,13 +3812,13 @@ maybe_move_attached_window (MetaWindow *window,
void *data) void *data)
{ {
if (window->hidden) if (window->hidden)
return FALSE; return G_SOURCE_CONTINUE;
if (meta_window_is_attached_dialog (window) || if (meta_window_is_attached_dialog (window) ||
meta_window_get_placement_rule (window)) meta_window_get_placement_rule (window))
meta_window_reposition (window); meta_window_reposition (window);
return FALSE; return G_SOURCE_CONTINUE;
} }
/** /**