From 5b0c4e089339c32cc3ec1074b1022aaf6d502752 Mon Sep 17 00:00:00 2001 From: Eric Koegel Date: Mon, 5 Dec 2011 18:04:33 +0300 Subject: [PATCH] Adds support for thumbnail icons from images. --- src/xfdesktop-regular-file-icon.c | 22 ++++++++++++++++++++-- 1 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/xfdesktop-regular-file-icon.c b/src/xfdesktop-regular-file-icon.c index e14256a..6834eb6 100644 --- a/src/xfdesktop-regular-file-icon.c +++ b/src/xfdesktop-regular-file-icon.c @@ -281,10 +281,28 @@ xfdesktop_regular_file_icon_peek_pixbuf(XfdesktopIcon *icon, if(file_icon->priv->file_info) gicon = g_file_info_get_icon(file_icon->priv->file_info); - file_icon->priv->pix = xfdesktop_file_utils_get_icon(icon_name, gicon, + /* Try to load the file as an image and make an icon from it. */ + file_icon->priv->pix = gdk_pixbuf_new_from_file_at_size(g_file_get_path(file_icon->priv->file), + size, + size, + NULL); + if(file_icon->priv->pix) { + if(emblem_pix) { + /* We have to add the emblem */ + gint emblem_pix_size = gdk_pixbuf_get_width(emblem_pix); + gint dest_size = size - emblem_pix_size; + + gdk_pixbuf_composite(emblem_pix, file_icon->priv->pix, + dest_size, dest_size, + emblem_pix_size, emblem_pix_size, + dest_size, dest_size, + 1.0, 1.0, GDK_INTERP_BILINEAR, 255); + } + } else { + file_icon->priv->pix = xfdesktop_file_utils_get_icon(icon_name, gicon, size, emblem_pix, file_icon->priv->pix_opacity); - + } file_icon->priv->cur_pix_size = size; if(emblem_pix) -- 1.7.5.4