window-actor: Set actor as compositor private in window before the surface

In MetaWindowActor creation we're setting the compositor private (i.e. the
window actor itself) of a window before creating the surface actor, and so
passing to the it a window without its compositor side set.

Since the surface actor might use the parent actor, set this before updating
the surface.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/660

(cherry picked from commit 7776941b89)
This commit is contained in:
Marco Trevisan (Treviño) 2019-06-28 11:18:22 +02:00
parent a51188f8d7
commit ffa4279a96

View File

@ -471,6 +471,9 @@ meta_window_actor_constructed (GObject *object)
priv->compositor = window->display->compositor;
/* Hang our compositor window state off the MetaWindow for fast retrieval */
meta_window_set_compositor_private (window, object);
meta_window_actor_update_surface (self);
meta_window_actor_update_opacity (self);
@ -1448,9 +1451,6 @@ meta_window_actor_new (MetaWindow *window)
meta_window_actor_sync_actor_geometry (self, priv->window->placed);
/* Hang our compositor window state off the MetaWindow for fast retrieval */
meta_window_set_compositor_private (window, G_OBJECT (self));
if (window->layer == META_LAYER_OVERRIDE_REDIRECT)
window_group = compositor->top_window_group;
else