]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-document-misc.c
Allow to add SaveAs to toolbar.
[evince.git] / libdocument / ev-document-misc.c
index 3dc4babef53a14198acedf20422c1586f5f4a4ba..133a6c6acce732e756f1ceaae248a41e17bd716b 100644 (file)
@@ -17,6 +17,7 @@
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
+#include <config.h>
 #include "ev-document-misc.h"
 #include <string.h>
 #include <gtk/gtk.h>
 #include "ev-document-misc.h"
 #include <string.h>
 #include <gtk/gtk.h>
@@ -151,8 +152,9 @@ ev_document_misc_surface_from_pixbuf (GdkPixbuf *pixbuf)
 {
        cairo_surface_t *surface;
        cairo_t         *cr;
 {
        cairo_surface_t *surface;
        cairo_t         *cr;
-       
-       surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
+
+       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);
                                              gdk_pixbuf_get_width (pixbuf),
                                              gdk_pixbuf_get_height (pixbuf));
        cr = cairo_create (surface);
@@ -257,7 +259,7 @@ ev_document_misc_surface_rotate_and_scale (cairo_surface_t *surface,
        }
 
        new_surface = cairo_surface_create_similar (surface,
        }
 
        new_surface = cairo_surface_create_similar (surface,
-                                                   CAIRO_CONTENT_COLOR_ALPHA,
+                                                   cairo_surface_get_content (surface),
                                                    new_width, new_height);
 
        cr = cairo_create (new_surface);
                                                    new_width, new_height);
 
        cr = cairo_create (new_surface);