diff options
author | Martin Szulecki <opensuse@sukimashita.com> | 2009-11-15 01:42:03 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2009-11-15 12:23:07 +0000 |
commit | 5bf437d9e65d69e985af1c1dc8d9c84cac744c96 (patch) | |
tree | 1841af6cdfd9bab94001370b579d86a0a464f28f /monitor/afc/afcvolume.c | |
parent | 24aa2ea08693969d66b263ba2aa9289056b23483 (diff) | |
download | gvfs-5bf437d9e65d69e985af1c1dc8d9c84cac744c96.tar.gz |
Fix shadowed mount showing up next to existing volume icon
The activation_root for a volume was not set when queried and thus
causing two icons created for the same volume/mount.
Now it already sets the activiation_root in the volume constructor
like in the gphoto2 backend.
https://bugzilla.gnome.org/show_bug.cgi?id=597802
Diffstat (limited to 'monitor/afc/afcvolume.c')
-rw-r--r-- | monitor/afc/afcvolume.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/monitor/afc/afcvolume.c b/monitor/afc/afcvolume.c index 73f2e55e..3af4661a 100644 --- a/monitor/afc/afcvolume.c +++ b/monitor/afc/afcvolume.c @@ -137,11 +137,19 @@ g_vfs_afc_volume_new (GVolumeMonitor *monitor, const char *uuid) { GVfsAfcVolume *self; + GFile *root; + char *uri; self = G_VFS_AFC_VOLUME(g_object_new (G_VFS_TYPE_AFC_VOLUME, NULL)); self->monitor = monitor; self->uuid = g_strdup (uuid); + uri = g_strdup_printf ("afc://%s", self->uuid); + root = g_file_new_for_uri (uri); + g_free (uri); + + g_object_set_data_full (G_OBJECT(self), "root", root, g_object_unref); + /* Get mount information here */ if (!_g_vfs_afc_volume_update_metadata (self)) return NULL; @@ -233,15 +241,12 @@ g_vfs_afc_volume_mount (GVolume *volume, GVfsAfcVolume *afc_volume = G_VFS_AFC_VOLUME (volume); ActivationMountOp *data; GFile *root; - char *uri; g_print ("g_vfs_afc_volume_mount (can_mount=%d uuid=%s)\n", g_vfs_afc_volume_can_mount (volume), afc_volume->uuid); - uri = g_strdup_printf ("afc://%s", afc_volume->uuid); - root = g_file_new_for_uri (uri); - g_free (uri); + root = g_object_get_data (G_OBJECT (volume), "root"); data = g_new0 (ActivationMountOp, 1); data->enclosing_volume = afc_volume; @@ -249,8 +254,6 @@ g_vfs_afc_volume_mount (GVolume *volume, data->user_data = user_data; data->root = root; - g_object_set_data_full (G_OBJECT(volume), "root", g_object_ref (root), g_object_unref); - g_file_mount_enclosing_volume (root, 0, mount_operation, |