X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libdocument%2Fev-document-misc.c;h=133a6c6acce732e756f1ceaae248a41e17bd716b;hb=f0b7075e647626890908db0d630d88a4e4f779b5;hp=3e85c7dd2c7ce6099bd4e942ab1ce0c593a1c9c7;hpb=a953c6011f2fba7441758469118a886a33458e50;p=evince.git diff --git a/libdocument/ev-document-misc.c b/libdocument/ev-document-misc.c index 3e85c7dd..133a6c6a 100644 --- a/libdocument/ev-document-misc.c +++ b/libdocument/ev-document-misc.c @@ -17,6 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #include "ev-document-misc.h" #include #include @@ -151,8 +152,9 @@ ev_document_misc_surface_from_pixbuf (GdkPixbuf *pixbuf) { cairo_surface_t *surface; cairo_t *cr; - - surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, + + surface = cairo_image_surface_create (gdk_pixbuf_get_has_alpha (pixbuf) ? + CAIRO_FORMAT_ARGB32 : CAIRO_FORMAT_RGB24, gdk_pixbuf_get_width (pixbuf), gdk_pixbuf_get_height (pixbuf)); cr = cairo_create (surface); @@ -239,8 +241,6 @@ ev_document_misc_surface_rotate_and_scale (cairo_surface_t *surface, cairo_surface_t *new_surface; cairo_t *cr; gint width, height; - gboolean has_alpha; - cairo_format_t surface_format; gint new_width = dest_width; gint new_height = dest_height; @@ -258,13 +258,8 @@ ev_document_misc_surface_rotate_and_scale (cairo_surface_t *surface, new_height = dest_width; } - surface_format = cairo_image_surface_get_format (surface); - has_alpha = (surface_format == CAIRO_FORMAT_ARGB32); - new_surface = cairo_surface_create_similar (surface, - has_alpha ? - CAIRO_CONTENT_COLOR_ALPHA : - CAIRO_CONTENT_COLOR, + cairo_surface_get_content (surface), new_width, new_height); cr = cairo_create (new_surface);