From f6da8a493c3a1fc12b5f30edf966f5d2c43a85ac Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 19 Jun 2008 03:30:17 +0000 Subject: [PATCH] Don't do fallback for user-home and user-desktop to avoid problems with * glocalfileinfo.c: Don't do fallback for user-home and user-desktop to avoid problems with partial icon themes. svn path=/trunk/; revision=7056 --- gio/ChangeLog | 5 +++++ gio/glocalfileinfo.c | 22 ++++++++++------------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/gio/ChangeLog b/gio/ChangeLog index 0734031..9e53ebf 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,8 @@ +2008-06-18 Matthias Clasen + + * glocalfileinfo.c: Don't do fallback for user-home and user-desktop + to avoid problems with partial icon themes. + 2008-06-17 Hans Breuer * gwin32mount.[ch] gwin32volumemonitor.[ch] : bits and pieces from diff --git a/gio/glocalfileinfo.c b/gio/glocalfileinfo.c index d71deb1..47ac134 100644 --- a/gio/glocalfileinfo.c +++ b/gio/glocalfileinfo.c @@ -1465,7 +1465,6 @@ _g_local_file_info_get (const char *basename, is_symlink = FALSE; #endif symlink_broken = FALSE; - #ifdef S_ISLNK if (is_symlink) { @@ -1565,18 +1564,17 @@ _g_local_file_info_get (const char *basename, { GIcon *icon; - icon = g_content_type_get_icon (content_type); - if (icon != NULL) + if (strcmp (path, g_get_home_dir ()) == 0) + icon = g_themed_icon_new ("user-home"); + else if (strcmp (path, g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP)) == 0) + icon = g_themed_icon_new ("user-desktop"); + else { + icon = g_content_type_get_icon (content_type); if (G_IS_THEMED_ICON (icon)) { - const char *preferred_icon = NULL; const char *type_icon = NULL; - if (strcmp (path, g_get_home_dir ()) == 0) - preferred_icon = "user-home"; - else if (strcmp (path, g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP)) == 0) - preferred_icon = "user-desktop"; if (S_ISDIR (statbuf.st_mode)) type_icon = "folder"; else if (statbuf.st_mode & S_IXUSR) @@ -1584,12 +1582,12 @@ _g_local_file_info_get (const char *basename, else type_icon = "text-x-generic"; - if (preferred_icon) - g_themed_icon_prepend_name (G_THEMED_ICON (icon), preferred_icon); - if (type_icon) - g_themed_icon_append_name (G_THEMED_ICON (icon), type_icon); + g_themed_icon_append_name (G_THEMED_ICON (icon), type_icon); } + } + if (icon != NULL) + { g_file_info_set_icon (info, icon); g_object_unref (icon); } -- 2.7.4