From 5eac1d696dceb62074f9560b82be233bc55ee108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Fri, 7 Jun 2019 15:49:40 +0200 Subject: [PATCH] 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 --- src/wayland/meta-wayland-surface.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c index da0acfcbb..391bcc6dd 100644 --- a/src/wayland/meta-wayland-surface.c +++ b/src/wayland/meta-wayland-surface.c @@ -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