Skip to content
  • Olivier Fourdan's avatar
    wayland: Drop cairo surfaces when withdrawing · 3bd7b379
    Olivier Fourdan authored
    If a window is unmapped by the client while gdk is processing updates,
    (for example Firefox un-mapping its window on Expose events), the
    windowing backend resources might be lost (for example with Wayland)
    which can cause a crash in end_paint().
    
    Make sure we drop the cairo surfaces as well when hiding the surface,
    that will avoid the crash in gdk_window_impl_wayland_end_paint() when
    trying to attach the staging cairo surface to a released wl_surface,
    these will be recreated when needed when the surface becomes visible
    again and there is no need to keep such buffers around for a surface
    which is not visible anyway.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=793062
    3bd7b379