summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2012-11-13 08:16:17 -0500
committerCosimo Cecchi <cosimoc@gnome.org>2012-11-13 08:19:31 -0500
commit6cde4c5a6d639c85df09b8992a307f91d6b056a6 (patch)
treebfa251289531108b63c0ac1ad5e9c56be747d1de
parent838c7751fefbdf745b4ecbe78f5885f1c204805c (diff)
downloadnautilus-6cde4c5a6d639c85df09b8992a307f91d6b056a6.tar.gz
file: don't add a thumbnail border around desktop file launchers
https://bugzilla.gnome.org/show_bug.cgi?id=688237
-rw-r--r--libnautilus-private/nautilus-file.c49
1 files changed, 36 insertions, 13 deletions
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index e9b77150b..d554376c6 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -3953,6 +3953,18 @@ get_custom_icon_metadata_name (NautilusFile *file)
}
static GIcon *
+get_link_icon (NautilusFile *file)
+{
+ GIcon *icon = NULL;
+
+ if (file->details->got_link_info && file->details->custom_icon != NULL) {
+ icon = g_object_ref (file->details->custom_icon);
+ }
+
+ return icon;
+}
+
+static GIcon *
get_custom_icon (NautilusFile *file)
{
char *custom_icon_uri, *custom_icon_name;
@@ -3985,11 +3997,7 @@ get_custom_icon (NautilusFile *file)
g_free (custom_icon_name);
}
}
-
- if (icon == NULL && file->details->got_link_info && file->details->custom_icon != NULL) {
- icon = g_object_ref (file->details->custom_icon);
- }
-
+
return icon;
}
@@ -4086,6 +4094,12 @@ nautilus_file_get_gicon (NautilusFile *file,
return icon;
}
+ icon = get_link_icon (file);
+
+ if (icon != NULL) {
+ return icon;
+ }
+
if (file->details->icon) {
icon = NULL;
@@ -4218,27 +4232,36 @@ nautilus_file_get_icon (NautilusFile *file,
{
NautilusIconInfo *icon;
GIcon *gicon;
+ gboolean custom_icon;
GdkPixbuf *raw_pixbuf, *scaled_pixbuf;
int modified_size;
if (file == NULL) {
return NULL;
}
-
+
+ custom_icon = FALSE;
gicon = get_custom_icon (file);
+
if (gicon) {
- GdkPixbuf *pixbuf;
+ custom_icon = TRUE;
+ } else {
+ gicon = get_link_icon (file);
+ }
+ if (gicon) {
icon = nautilus_icon_info_lookup (gicon, size);
g_object_unref (gicon);
- pixbuf = nautilus_icon_info_get_pixbuf (icon);
- if (pixbuf != NULL) {
- nautilus_ui_frame_image (&pixbuf);
- g_object_unref (icon);
+ if (custom_icon) {
+ raw_pixbuf = nautilus_icon_info_get_pixbuf (icon);
+ if (raw_pixbuf != NULL) {
+ nautilus_ui_frame_image (&raw_pixbuf);
+ g_object_unref (icon);
- icon = nautilus_icon_info_new_for_pixbuf (pixbuf);
- g_object_unref (pixbuf);
+ icon = nautilus_icon_info_new_for_pixbuf (raw_pixbuf);
+ g_object_unref (raw_pixbuf);
+ }
}
return icon;