]> git.street.me.uk Git - andy/viking.git/blobdiff - src/thumbnails.c
Add and use defines for conversion of speed units.
[andy/viking.git] / src / thumbnails.c
index dc8f8a9fc57bc35eb3f052986b3076adc518a06e..0461114b65554655f631eb1b75c0e42d20e4c670 100644 (file)
@@ -142,9 +142,12 @@ GdkPixbuf *a_thumbnails_scale_pixbuf(GdkPixbuf *src, int max_w, int max_h)
 
 static GdkPixbuf *child_create_thumbnail(const gchar *path)
 {
-       GdkPixbuf *image;
+       GdkPixbuf *image, *tmpbuf;
 
        image = gdk_pixbuf_new_from_file(path, NULL);
+       tmpbuf = gdk_pixbuf_apply_embedded_orientation(image);
+       g_object_unref(G_OBJECT(image));
+       image = tmpbuf;
 
        if (image)
         {
@@ -161,6 +164,7 @@ static GdkPixbuf *save_thumbnail(const char *pathname, GdkPixbuf *full)
        struct stat info;
        gchar *path;
        int original_width, original_height;
+       const gchar* orientation;
        GString *to;
        char *md5, *swidth, *sheight, *ssize, *smtime, *uri;
        mode_t old_mask;
@@ -172,6 +176,8 @@ static GdkPixbuf *save_thumbnail(const char *pathname, GdkPixbuf *full)
 
        thumb = a_thumbnails_scale_pixbuf(full, PIXMAP_THUMB_SIZE, PIXMAP_THUMB_SIZE);
 
+       orientation = gdk_pixbuf_get_option (full, "orientation");
+
        original_width = gdk_pixbuf_get_width(full);
        original_height = gdk_pixbuf_get_height(full);
 
@@ -208,6 +214,7 @@ static GdkPixbuf *save_thumbnail(const char *pathname, GdkPixbuf *full)
                        "tEXt::Thumb::MTime", smtime,
                        "tEXt::Thumb::URI", uri,
                        "tEXt::Software", PROJECT,
+                       "tEXt::Software::Orientation", orientation ? orientation : "0",
                        NULL);
        umask(old_mask);