wayland/surface: Don't make destoryed actor reactive

When destructing a xdg_toplevel, we'll disassociate the actor from the
MetaWaylandSurface, to allow it to animate out. After having done this,
avoid trying to set it as unreactive when unsetting the window.

This fixes the runtime warning:

clutter_actor_set_reactive: assertion 'CLUTTER_IS_ACTOR (actor)' failed
This commit is contained in:
Jonas Ådahl 2018-12-03 17:04:42 +01:00 committed by Georges Basile Stavracas Neto
parent da5a2d3cb8
commit 19e3c21667

View File

@ -1226,6 +1226,7 @@ meta_wayland_surface_set_window (MetaWaylandSurface *surface,
MetaWindow *window)
{
gboolean was_unmapped = surface->window && !window;
ClutterActor *actor;
if (surface->window == window)
return;
@ -1242,7 +1243,10 @@ meta_wayland_surface_set_window (MetaWaylandSurface *surface,
surface->window = window;
clutter_actor_set_reactive (CLUTTER_ACTOR (meta_wayland_surface_get_actor (surface)), !!window);
actor = CLUTTER_ACTOR (meta_wayland_surface_get_actor (surface));
if (actor)
clutter_actor_set_reactive (actor, !!window);
sync_drag_dest_funcs (surface);
if (was_unmapped)