On Wed, Sep 22, 2004 at 04:19:38PM +0100, Bastien Nocera wrote: > On Wed, 2004-09-22 at 17:17 +0200, Sjoerd Simons wrote: > > On Tue, Sep 21, 2004 at 09:49:43AM +0200, Sjoerd Simons wrote: > > > Hi, > > > > > > I got some complaints from debian users that gvm mounts too much on > > > startup. After some research it seems that g-v-m just mounts > > > everything on startup even if ``mount removable drives/media'' is > > > turned off. This is easy to fix ofcourse. > > > > > > More ``problematic'' is that some people don't seem to like it that > > > their static disks are mounted on startup. For example some stray > > > windows or os X partition. Maybe a ``Mount static disks on session > > > start'' option would be > > > nice for this. Any opinions about this ? > > > > Patch which does this is attached. > > That doesn't have its place in the preferences UI, IMO. Another way to solve this problem attached. It allows one to specify a boolean property in hal called storage.policy.manual_mount, which when true causes gvm to not automagically mount the volume. Sjoerd -- What is research but a blind date with knowledge? -- Will Harvey
Index: src/manager.c =================================================================== RCS file: /cvs/gnome/gnome-volume-manager/src/manager.c,v retrieving revision 1.35 diff -u -r1.35 manager.c --- src/manager.c 25 Oct 2004 19:12:11 -0000 1.35 +++ src/manager.c 2 Nov 2004 12:34:41 -0000 @@ -243,6 +243,14 @@ return retval; } +/* Returns true if the storage policy indicates this should be manually + * mounted */ +static gboolean +gvm_is_manual_mount(LibHalContext *ctx, const char *udi) { + return + hal_device_property_exists (hal_ctx, udi, "storage.policy.manual_mount") && + hal_device_get_property_bool (hal_ctx, udi, "storage.policy.manual_mount"); +} /* * gvm_check_dvd - is this a Video DVD? If so, do something about it. * @@ -556,6 +564,8 @@ switch (action) { case MOUNT: + if (gvm_is_manual_mount(hal_ctx, udi)) + break; gvm_device_mount (device); mounted_volumes_policy_queue = g_slist_append (mounted_volumes_policy_queue, g_strdup (udi)); break; @@ -632,7 +642,7 @@ } else if (has_audio && has_data) { gvm_ask_mixed (udi); } else if (has_data) { - if (config.automount_media) { + if (config.automount_media && !gvm_is_manual_mount(hal_ctx, udi)) { gvm_device_mount (device); mounted_volumes_policy_queue = g_slist_append (mounted_volumes_policy_queue, g_strdup (udi)); } @@ -690,9 +700,10 @@ } else { dbg ("Added: %s\n", device); - if (config.automount_drives) { + if (config.automount_drives && !gvm_is_manual_mount(hal_ctx, udi)) { gvm_device_mount (device); - mounted_volumes_policy_queue = g_slist_append (mounted_volumes_policy_queue, g_strdup (udi)); + mounted_volumes_policy_queue = + g_slist_append (mounted_volumes_policy_queue, g_strdup (udi)); } } @@ -754,9 +765,10 @@ /* folks, we have a new device! */ dbg ("Added: %s\n", device); - if (config.automount_drives) { + if (config.automount_drives && !gvm_is_manual_mount(ctx, udi)) { gvm_device_mount (device); - mounted_volumes_policy_queue = g_slist_append (mounted_volumes_policy_queue, g_strdup (udi)); + mounted_volumes_policy_queue = + g_slist_append (mounted_volumes_policy_queue, g_strdup (udi)); } out: @@ -965,6 +977,9 @@ "volume.fsusage"), "filesystem") != 0) continue; + /* only automagically mount when manual_mount is not specified */ + if (gvm_is_manual_mount(ctx, udi)) + continue; device_file = hal_device_get_property_string (ctx, udi, "block.device");
Attachment:
signature.asc
Description: Digital signature