summaryrefslogtreecommitdiff
path: root/gdk/gdkpixbuf-drawable.c
diff options
context:
space:
mode:
authorClaudio Saavedra <csaavedra@igalia.com>2013-09-06 18:44:57 +0300
committerClaudio Saavedra <csaavedra@igalia.com>2013-09-06 18:50:07 +0300
commit0735aa1c2ee0faa8c9b75a2f1c31870db6597f79 (patch)
tree54476d7d2e8ab747a7a48da4ad9ea66d27f33de0 /gdk/gdkpixbuf-drawable.c
parentfc7d26860a8b252f2d95e40366d2beaa7020b9d4 (diff)
downloadgtk+-0735aa1c2ee0faa8c9b75a2f1c31870db6597f79.tar.gz
gdk_pixbuf_get_from_source: only reuse surfaces with matching format
Otherwise the conversion functions will return rubbish. https://bugzilla.gnome.org/show_bug.cgi?id=707445
Diffstat (limited to 'gdk/gdkpixbuf-drawable.c')
-rw-r--r--gdk/gdkpixbuf-drawable.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gdk/gdkpixbuf-drawable.c b/gdk/gdkpixbuf-drawable.c
index 59698f8ac0..b6d238e390 100644
--- a/gdk/gdkpixbuf-drawable.c
+++ b/gdk/gdkpixbuf-drawable.c
@@ -248,7 +248,8 @@ gdk_pixbuf_get_from_surface (cairo_surface_t *surface,
8,
width, height);
- if (cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_IMAGE)
+ if (cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_IMAGE &&
+ cairo_image_surface_get_format (surface) == gdk_cairo_format_for_content (content))
surface = cairo_surface_reference (surface);
else
{