diff options
author | William Jon McCann <jmccann@redhat.com> | 2012-08-31 15:35:55 -0400 |
---|---|---|
committer | William Jon McCann <jmccann@redhat.com> | 2012-08-31 16:44:55 -0400 |
commit | 0852847e2613dbcebb4ed7f58e5b2aee3aa86a90 (patch) | |
tree | ce15d8c4def624022d0c85146eb52beca4e7266f /libnautilus-private/nautilus-file-utilities.c | |
parent | c8b27b3b8b815a993b1536336cdbc5d1089f2e7c (diff) | |
download | nautilus-0852847e2613dbcebb4ed7f58e5b2aee3aa86a90.tar.gz |
Don't try to close the window when a mount goes away
Go to home instead.
https://bugzilla.gnome.org/show_bug.cgi?id=666985
Diffstat (limited to 'libnautilus-private/nautilus-file-utilities.c')
-rw-r--r-- | libnautilus-private/nautilus-file-utilities.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/libnautilus-private/nautilus-file-utilities.c b/libnautilus-private/nautilus-file-utilities.c index 35a43d66c..b526a42b7 100644 --- a/libnautilus-private/nautilus-file-utilities.c +++ b/libnautilus-private/nautilus-file-utilities.c @@ -882,6 +882,48 @@ nautilus_is_desktop_directory (GFile *dir) return g_file_equal (dir, desktop_dir); } +GMount * +nautilus_get_mounted_mount_for_root (GFile *location) +{ + GVolumeMonitor *volume_monitor; + GList *mounts; + GList *l; + GMount *mount; + GMount *result = NULL; + GFile *root = NULL; + GFile *default_location = NULL; + + volume_monitor = g_volume_monitor_get (); + mounts = g_volume_monitor_get_mounts (volume_monitor); + + for (l = mounts; l != NULL; l = l->next) { + mount = l->data; + + if (g_mount_is_shadowed (mount)) { + continue; + } + + root = g_mount_get_root (mount); + if (g_file_equal (location, root)) { + result = g_object_ref (mount); + break; + } + + default_location = g_mount_get_default_location (mount); + if (!g_file_equal (default_location, root) && + g_file_equal (location, default_location)) { + result = g_object_ref (mount); + break; + } + } + + g_clear_object (&root); + g_clear_object (&default_location); + g_list_free_full (mounts, g_object_unref); + + return result; +} + char * nautilus_ensure_unique_file_name (const char *directory_uri, const char *base_name, |