From 9e1ae0e29a3de164bd5aefd651439c2045276e05 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 12 Jul 2010 15:44:32 +0200 Subject: [PATCH] pixbuf-engine: replace call to gdk_draw_pixbuf() with Cairo equivalent --- modules/engines/pixbuf/pixbuf-render.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/modules/engines/pixbuf/pixbuf-render.c b/modules/engines/pixbuf/pixbuf-render.c index 7b5bb12d20..d074f64c91 100644 --- a/modules/engines/pixbuf/pixbuf-render.c +++ b/modules/engines/pixbuf/pixbuf-render.c @@ -477,6 +477,9 @@ pixbuf_render (GdkPixbuf *src, if (tmp_pixbuf) { + cairo_t *cr; + + cr = gdk_cairo_create (window); if (mask) { gdk_pixbuf_render_threshold_alpha (tmp_pixbuf, mask, @@ -485,13 +488,15 @@ pixbuf_render (GdkPixbuf *src, rect.width, rect.height, 128); } - - gdk_draw_pixbuf (window, NULL, tmp_pixbuf, - x_offset, y_offset, - rect.x, rect.y, - rect.width, rect.height, - GDK_RGB_DITHER_NORMAL, - 0, 0); + + gdk_cairo_set_source_pixbuf (cr, + tmp_pixbuf, + -x_offset + rect.x, + -y_offset + rect.y); + gdk_cairo_rectangle (cr, &rect); + cairo_fill (cr); + + cairo_destroy (cr); g_object_unref (tmp_pixbuf); } }