summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2014-09-09 14:23:09 -0700
committerCosimo Cecchi <cosimoc@gnome.org>2014-09-09 15:49:12 -0700
commit9f49a745fa1097ddddae9c9fbcdbb0c73925d108 (patch)
tree42fd8eb6e611603d700da53fcd19b7ed8c91284e
parent53d657ccc04be0d2003100f82c962d4b1f173aa8 (diff)
downloadnautilus-9f49a745fa1097ddddae9c9fbcdbb0c73925d108.tar.gz
file: apply emblems to all gicons
Including the default icons.
-rw-r--r--libnautilus-private/nautilus-file.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 9f4e04ffd..9d313eb33 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -4015,6 +4015,17 @@ get_custom_icon (NautilusFile *file)
return icon;
}
+static GIcon *
+get_default_file_icon (void)
+{
+ static GIcon *fallback_icon = NULL;
+ if (fallback_icon == NULL) {
+ fallback_icon = g_themed_icon_new ("text-x-generic");
+ }
+
+ return fallback_icon;
+}
+
GFilesystemPreviewType
nautilus_file_get_filesystem_use_preview (NautilusFile *file)
{
@@ -4304,6 +4315,8 @@ nautilus_file_get_gicon (NautilusFile *file,
int i;
gboolean is_folder = FALSE, is_inode_directory = FALSE;
+ icon = NULL;
+
if (file == NULL) {
return NULL;
}
@@ -4324,7 +4337,7 @@ nautilus_file_get_gicon (NautilusFile *file,
icon = get_mount_icon (file);
if (icon != NULL) {
- return icon;
+ goto out;
}
}
@@ -4388,24 +4401,17 @@ nautilus_file_get_gicon (NautilusFile *file,
}
out:
+ if (icon == NULL) {
+ icon = g_object_ref (get_default_file_icon ());
+ }
+
if (flags & NAUTILUS_FILE_ICON_FLAGS_USE_EMBLEMS) {
emblemed_icon = apply_emblems_to_icon (file, icon, flags);
g_object_unref (icon);
icon = emblemed_icon;
}
- return g_themed_icon_new ("text-x-generic");
-}
-
-static GIcon *
-get_default_file_icon (void)
-{
- static GIcon *fallback_icon = NULL;
- if (fallback_icon == NULL) {
- fallback_icon = g_themed_icon_new ("text-x-generic");
- }
-
- return fallback_icon;
+ return icon;
}
char *