diff options
author | Claudio Saavedra <csaavedra@igalia.com> | 2013-09-06 18:44:57 +0300 |
---|---|---|
committer | Claudio Saavedra <csaavedra@igalia.com> | 2013-09-06 18:50:07 +0300 |
commit | 0735aa1c2ee0faa8c9b75a2f1c31870db6597f79 (patch) | |
tree | 54476d7d2e8ab747a7a48da4ad9ea66d27f33de0 /gdk/gdkpixbuf-drawable.c | |
parent | fc7d26860a8b252f2d95e40366d2beaa7020b9d4 (diff) | |
download | gtk+-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.c | 3 |
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 { |