From 27e3059a324ea1e18e871dbaa0278b1f91a91b9e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 4 Sep 2015 23:28:24 -0400 Subject: [PATCH] wayland: Remove an overeager assert If we are using gl for drawing, we don't have a shm surface, so don't assert that we do. Instead, only call shm-specific apis when they make sense. This fixes a crash when showing popovers over a GtkGLArea, as seen in gdkgears. https://bugzilla.gnome.org/show_bug.cgi?id=754143 --- gdk/wayland/gdkwindow-wayland.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index 9190d4780c..d999753422 100644 --- a/gdk/wayland/gdkwindow-wayland.c +++ b/gdk/wayland/gdkwindow-wayland.c @@ -420,8 +420,6 @@ on_frame_clock_after_paint (GdkFrameClock *clock, if (!impl->pending_commit) return; - g_assert (_gdk_wayland_is_shm_surface (impl->cairo_surface)); - impl->pending_commit = FALSE; impl->pending_frame_counter = gdk_frame_clock_get_frame_counter (clock); impl->awaiting_frame = TRUE; @@ -431,7 +429,8 @@ on_frame_clock_after_paint (GdkFrameClock *clock, _gdk_frame_clock_freeze (clock); wl_surface_commit (impl->surface); - _gdk_wayland_shm_surface_set_busy (impl->cairo_surface); + if (_gdk_wayland_is_shm_surface (impl->cairo_surface)) + _gdk_wayland_shm_surface_set_busy (impl->cairo_surface); } static void