Merge branch 'ebassi/issue-5482' into 'gtk-3-24'

Mark surface as dirty before flushing it

See merge request GNOME/gtk!5505
This commit is contained in:
Matthias Clasen 2023-02-12 20:04:04 +00:00
commit 8369148c3b

View File

@ -102,8 +102,17 @@ gdk_pixbuf_get_from_window (GdkWindow *src,
/* We do not know what happened to this surface outside of GDK. /* We do not know what happened to this surface outside of GDK.
* Especially for foreign windows, they will have been modified * Especially for foreign windows, they will have been modified
* by external applications. * by external applications.
*
* So be on the safe side and: * So be on the safe side and:
* - mark the surface as dirty, in case the GdkWindow was
* created from a foreign X11 surface
* - flush the Cairo state
*
* For reference, see:
* - https://bugzilla.gnome.org/show_bug.cgi?id=754952
* - https://gitlab.gnome.org/GNOME/gtk/-/issues/4456
*/ */
cairo_surface_mark_dirty (surface);
cairo_surface_flush (surface); cairo_surface_flush (surface);
if (cairo_surface_get_content (surface) & CAIRO_CONTENT_ALPHA) if (cairo_surface_get_content (surface) & CAIRO_CONTENT_ALPHA)