wayland/surface: Clear texture when attaching NULL

When 252e64a0eae61735a912d41817c6e6f24824146b moved the texture
ownership to MetaWaylandSurface, it failed to handle the case when a
NULL-buffer is attached, leaving the texture reference in place. This
caused issues when the surface should have been hidden (e.g. attaching a
NULL buffer to a cursor surface for hiding the cursor sprite).

Related: https://gitlab.gnome.org/GNOME/mutter/issues/630


(cherry picked from commit 5eac1d696dceb62074f9560b82be233bc55ee108)
This commit is contained in:
Jonas Ådahl 2019-06-07 13:49:40 +00:00 committed by Georges Basile Stavracas Neto
parent 13a1624c10
commit e716f9d143

View File

@ -737,6 +737,10 @@ meta_wayland_surface_apply_pending_state (MetaWaylandSurface *surface,
g_clear_pointer (&snippet, cogl_object_unref);
}
}
else
{
cogl_clear_object (&surface->texture);
}
/* If the newly attached buffer is going to be accessed directly without
* making a copy, such as an EGL buffer, mark it as in-use don't release