summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-bookmark.c
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2012-09-26 13:12:42 -0400
committerCosimo Cecchi <cosimoc@gnome.org>2012-09-26 13:12:42 -0400
commit6f1e24dfe88261ea8d6d80707bab11c95c8486fb (patch)
tree16e81303c1a376df858b9d8c1e331ff43a7bb611 /libnautilus-private/nautilus-bookmark.c
parentb72d57b038e50172fac2fafdc6c26660378aab34 (diff)
downloadnautilus-6f1e24dfe88261ea8d6d80707bab11c95c8486fb.tar.gz
bookmark: include icons for XDG special directories in NautilusBookmark
This ensures we also return the right icon in the shell search provider when an XDG directory is in the results.
Diffstat (limited to 'libnautilus-private/nautilus-bookmark.c')
-rw-r--r--libnautilus-private/nautilus-bookmark.c41
1 files changed, 39 insertions, 2 deletions
diff --git a/libnautilus-private/nautilus-bookmark.c b/libnautilus-private/nautilus-bookmark.c
index 3e15b7982..f5995c4d7 100644
--- a/libnautilus-private/nautilus-bookmark.c
+++ b/libnautilus-private/nautilus-bookmark.c
@@ -179,6 +179,43 @@ apply_warning_emblem (GIcon **base,
*base = emblemed_icon;
}
+static GIcon *
+get_native_icon (NautilusBookmark *bookmark,
+ gboolean symbolic)
+{
+ gint idx;
+ GIcon *icon = NULL;
+
+ if (bookmark->details->file == NULL) {
+ goto out;
+ }
+
+ for (idx = 0; idx < G_USER_N_DIRECTORIES; idx++) {
+ if (nautilus_file_is_user_special_directory (bookmark->details->file, idx)) {
+ break;
+ }
+ }
+
+ if (idx < G_USER_N_DIRECTORIES) {
+ if (symbolic) {
+ icon = nautilus_special_directory_get_symbolic_icon (idx);
+ } else {
+ icon = nautilus_special_directory_get_icon (idx);
+ }
+ }
+
+ out:
+ if (icon == NULL) {
+ if (symbolic) {
+ icon = g_themed_icon_new (NAUTILUS_ICON_FOLDER);
+ } else {
+ icon = g_themed_icon_new (NAUTILUS_ICON_FULLCOLOR_FOLDER);
+ }
+ }
+
+ return icon;
+}
+
static void
nautilus_bookmark_set_icon_to_default (NautilusBookmark *bookmark)
{
@@ -186,8 +223,8 @@ nautilus_bookmark_set_icon_to_default (NautilusBookmark *bookmark)
char *uri;
if (g_file_is_native (bookmark->details->location)) {
- symbolic_icon = g_themed_icon_new (NAUTILUS_ICON_FOLDER);
- icon = g_themed_icon_new (NAUTILUS_ICON_FULLCOLOR_FOLDER);
+ symbolic_icon = get_native_icon (bookmark, TRUE);
+ icon = get_native_icon (bookmark, FALSE);
} else {
uri = nautilus_bookmark_get_uri (bookmark);
if (g_str_has_prefix (uri, EEL_SEARCH_URI)) {