]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-document-misc.c
Added Asturian translation on behalf of Mikel González
[evince.git] / libdocument / ev-document-misc.c
index 8e6f54fca0309a06e7e229ff5de1e87a43770111..889e4a88d0a08e51e1d3c2b92530ea1469bbb3df 100644 (file)
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-#include "ev-document-misc.h"
+#include <config.h>
+
 #include <string.h>
+
 #include <gtk/gtk.h>
 
+#include "ev-document-misc.h"
+
 /* Returns a new GdkPixbuf that is suitable for placing in the thumbnail view.
  * It is four pixels wider and taller than the source.  If source_pixbuf is not
  * NULL, then it will fill the return pixbuf with the contents of
@@ -151,8 +155,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);
@@ -218,10 +223,10 @@ ev_document_misc_pixbuf_from_surface (cairo_surface_t *surface)
                        p[3] = (has_alpha) ? p[3] : 0xff;
 #else
                        tmp = p[0];
-                       p[0] = (has_alpha) ? p[3] : 0xff;
-                       p[3] = p[2];
-                       p[2] = p[1];
-                       p[1] = tmp;
+                       p[0] = p[1];
+                       p[1] = p[2];
+                       p[2] = p[3];
+                       p[3] = (has_alpha) ? tmp : 0xff;
 #endif                 
                        p += pixbuf_n_channels;
                }