From 0e51f02ccba4da8887c43bc0520764a43f997b8f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 10 Jun 2008 16:56:25 +0000 Subject: [PATCH] =?utf8?q?=20=20=20=20=20=20=20=20Bug=20537546=20=E2=80=93?= =?utf8?q?=20'desktop'=20shortcut=20in=20file=20chooser=20looks=20like=20a?= =?utf8?q?=20generic=20=20=20=20=20=20=20=20=20folder?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * glocalfileinfo.c (_g_local_file_info_get): Return user-desktop as icon for the desktop directory, also make user-home and user-desktop the preferred icons. svn path=/trunk/; revision=6992 --- gio/ChangeLog | 9 +++++++++ gio/glocalfileinfo.c | 15 ++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/gio/ChangeLog b/gio/ChangeLog index 68ab141c..7c806c60 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,12 @@ +2008-06-10 Matthias Clasen + + Bug 537546 – 'desktop' shortcut in file chooser looks like a generic + folder + + * glocalfileinfo.c (_g_local_file_info_get): Return user-desktop + as icon for the desktop directory, also make user-home and + user-desktop the preferred icons. + 2008-06-10 Matthias Clasen * gio.symbols: diff --git a/gio/glocalfileinfo.c b/gio/glocalfileinfo.c index b691764a..fb94f81c 100644 --- a/gio/glocalfileinfo.c +++ b/gio/glocalfileinfo.c @@ -1570,19 +1570,24 @@ _g_local_file_info_get (const char *basename, { if (G_IS_THEMED_ICON (icon)) { - const char *type_icon; + const char *preferred_icon = NULL; + const char *type_icon = NULL; - /* TODO: Special case desktop dir? That could be expensive with xdg dirs... */ if (strcmp (path, g_get_home_dir ()) == 0) - type_icon = "user-home"; - else if (S_ISDIR (statbuf.st_mode)) + 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) type_icon = "application-x-executable"; else type_icon = "text-x-generic"; - g_themed_icon_append_name (G_THEMED_ICON (icon), type_icon); + 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_file_info_set_icon (info, icon); -- 2.34.1