summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@redhat.com>2009-02-17 16:33:51 +0100
committerTomas Bzatek <tbzatek@redhat.com>2009-02-17 16:33:51 +0100
commit0701d66c3aa3b969f7d4bda0826a365d5f5e193c (patch)
tree3b9b46a9030df115c00b372c5fdedca149f8be09 /src
parentbbcc150f88649c2db776d85e1165c44c95b15a4a (diff)
downloadnautilus-gdu-0701d66c3aa3b969f7d4bda0826a365d5f5e193c.tar.gz
nautilus-gdu-0701d66c3aa3b969f7d4bda0826a365d5f5e193c.tar.xz
nautilus-gdu-0701d66c3aa3b969f7d4bda0826a365d5f5e193c.zip
Show only relevant presentables, hide toplevel ones if device contains filesystem(s)
Diffstat (limited to 'src')
-rw-r--r--src/gdu-utils.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gdu-utils.c b/src/gdu-utils.c
index 6929c66..e85eee3 100644
--- a/src/gdu-utils.c
+++ b/src/gdu-utils.c
@@ -174,6 +174,7 @@ gdu_util_presentable_combo_box_create_store (GduPool *pool)
GduDevice *toplevel_device = NULL;
GduDevice *device;
GdkPixbuf *pixbuf = NULL;
+ GList *enclosed_presentables = NULL;
char *name = NULL;
char *display_name = NULL;
@@ -184,7 +185,10 @@ gdu_util_presentable_combo_box_create_store (GduPool *pool)
toplevel_device = gdu_presentable_get_device (toplevel_presentable);
pixbuf = gdu_util_get_pixbuf_for_presentable (presentable, GTK_ICON_SIZE_DIALOG);
- if (toplevel_device != NULL && gdu_device_is_removable (toplevel_device)) {
+ /* determine parent presentables (in case of toplevel drive) */
+ enclosed_presentables = gdu_pool_get_enclosed_presentables (pool, presentable);
+
+ if (toplevel_device != NULL && gdu_device_is_removable (toplevel_device) && g_list_length (enclosed_presentables) == 0) {
name = g_strdup (gdu_device_id_get_label (device));
if (name && strlen (name) > 0)
display_name = g_strdup (name);
@@ -212,6 +216,8 @@ gdu_util_presentable_combo_box_create_store (GduPool *pool)
if (name)
g_free (name);
}
+ g_list_foreach (enclosed_presentables, (GFunc) g_object_unref, NULL);
+ g_list_free (enclosed_presentables);
}
if (pixbuf)