From 9320cd66487c8da1a8ca3c514cd001515dba83f6 Mon Sep 17 00:00:00 2001 From: romovs Date: Sun, 25 Aug 2013 01:40:02 +0300 Subject: fixed thumbnail frame not being displayed for some files. also fixes #135. --- libcaja-private/caja-file.c | 13 +++++++++++-- libcaja-private/caja-ui-utilities.c | 9 --------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/libcaja-private/caja-file.c b/libcaja-private/caja-file.c index 84d799f9..85f8a9ce 100644 --- a/libcaja-private/caja-file.c +++ b/libcaja-private/caja-file.c @@ -4276,7 +4276,9 @@ caja_file_get_icon (CajaFile *file, pixbuf = caja_icon_info_get_pixbuf (icon); if (pixbuf != NULL) { - caja_ui_frame_image (&pixbuf); + if (!file->details->is_launcher && !gdk_pixbuf_get_has_alpha (pixbuf)) { + caja_ui_frame_image (&pixbuf); + } g_object_unref (icon); icon = caja_icon_info_new_for_pixbuf (pixbuf); @@ -4320,7 +4322,14 @@ caja_file_get_icon (CajaFile *file, MAX (h * scale, 1), GDK_INTERP_BILINEAR); - caja_ui_frame_image (&scaled_pixbuf); + /* Render frames only for thumbnails of non-image files + and for images with no alpha channel. */ + gboolean is_image = strncmp(eel_ref_str_peek (file->details->mime_type), "image/", 6) == 0; + if (!is_image || + is_image && !gdk_pixbuf_get_has_alpha (raw_pixbuf)) { + caja_ui_frame_image (&scaled_pixbuf); + } + g_object_unref (raw_pixbuf); /* Don't scale up if more than 25%, then read the original diff --git a/libcaja-private/caja-ui-utilities.c b/libcaja-private/caja-ui-utilities.c index 9732b6d9..8077e975 100644 --- a/libcaja-private/caja-ui-utilities.c +++ b/libcaja-private/caja-ui-utilities.c @@ -287,21 +287,12 @@ caja_ui_frame_image (GdkPixbuf **pixbuf) { GdkPixbuf *pixbuf_with_frame, *frame; int left_offset, top_offset, right_offset, bottom_offset; - int size; frame = caja_get_thumbnail_frame (); if (frame == NULL) { return; } - size = MAX (gdk_pixbuf_get_width (*pixbuf), - gdk_pixbuf_get_height (*pixbuf)); - - /* We don't want frames around small icons */ - if (size < 128 && gdk_pixbuf_get_has_alpha (*pixbuf)) { - return; - } - left_offset = CAJA_THUMBNAIL_FRAME_LEFT; top_offset = CAJA_THUMBNAIL_FRAME_TOP; right_offset = CAJA_THUMBNAIL_FRAME_RIGHT; -- cgit v1.2.1