forked from AuroraMiddleware/gtk
wayland: check valid pending cairo surface
gdk_wayland_window_attach_image() is normally called from gdk_window_end_paint() to notify the compositor of newly staged drawing. If any of the drawing code inadvertently dispatches the wayland event loop (for instance with a gdk_flush() call), then it's possible that by the time gdk_window_end_paint() is called, the staged drawing is already destroyed. This commit bypasses the attach_image call in scenarios where the staged drawing is prematurely dropped. https://bugzilla.gnome.org/show_bug.cgi?id=773274
This commit is contained in:
parent
c9a313a125
commit
2324b96a32
@ -896,7 +896,9 @@ gdk_window_impl_wayland_end_paint (GdkWindow *window)
|
||||
cairo_rectangle_int_t rect;
|
||||
int i, n;
|
||||
|
||||
if (!window->current_paint.use_gl &&
|
||||
if (impl->staging_cairo_surface &&
|
||||
_gdk_wayland_is_shm_surface (impl->staging_cairo_surface) &&
|
||||
!window->current_paint.use_gl &&
|
||||
!cairo_region_is_empty (window->current_paint.region))
|
||||
{
|
||||
gdk_wayland_window_attach_image (window);
|
||||
|
Loading…
Reference in New Issue
Block a user