core: Sync actor frozen state after destroying frame

A window may become undecorated while the frame window is
frozen due to updates. In that case we would both miss a
reply for the frame window, and any other means to trigger
the window actor being thawed.

Check the frozen state after destroying the frame, so that
meta_window_x11_are_updates_frozen() may end up changing
opinion if the frame window was caught in this situation.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2639
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2996>
This commit is contained in:
Carlos Garnacho 2023-05-08 20:14:27 +02:00 committed by Marge Bot
parent ae4755cc61
commit 4fcfd0350e

View File

@ -246,6 +246,9 @@ meta_window_destroy_frame (MetaWindow *window)
g_free (frame);
/* Put our state back where it should be */
if (!window->unmanaging)
meta_compositor_sync_updates_frozen (window->display->compositor, window);
meta_window_queue (window, META_QUEUE_CALC_SHOWING);
meta_window_queue (window, META_QUEUE_MOVE_RESIZE);
}