I see that 0.8.1 has your patch.
I think that better than waiting 1 second would be to try immediately
and only then wait for a bit. I modified the code accordingly, ending
up with
static gboolean
tvm_block_device_mount_volume (TvmContext *context, GVolume *volume)
{
GMountOperation *mount_operation;
/* check if we have a volume */
if (volume != NULL)
{
/* check if we can mount the volume */
if (g_volume_can_mount (volume))
{
/* try to mount the volume asynchronously */
mount_operation = gtk_mount_operation_new (NULL);
g_volume_mount (volume, G_MOUNT_MOUNT_NONE, mount_operation,
NULL, (GAsyncReadyCallback)
tvm_block_device_mount_finish, context);
g_object_unref (mount_operation);
}
else
{
g_set_error (context->error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
_("Unable to mount the device"));
/* finish processing the device */
tvm_device_handler_finished (context);
}
}
else
{
g_set_error (context->error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
_("Could not detect the volume corresponding to the
device"));
/* finish processing the device */
tvm_device_handler_finished (context);
}
return FALSE;
}
static gboolean
tvm_block_device_mount_retry (TvmContext *context)
{
GVolume *volume;
volume =
tvm_g_volume_monitor_get_volume_for_kind (context->monitor,
G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE,
g_udev_device_get_device_file
(context->device));
/* if no volume then call anyway to do not-found processing */
tvm_block_device_mount_volume (context,volume);
return FALSE;
}
static gboolean
tvm_block_device_mount (TvmContext *context)
{
GVolume *volume;
g_return_if_fail (context != NULL);
/* determine the GVolume corresponding to the udev device */
volume =
tvm_g_volume_monitor_get_volume_for_kind (context->monitor,
G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE,
g_udev_device_get_device_file
(context->device));
if (volume != NULL)
{
tvm_block_device_mount_volume(context,volume);
}
else
{
/* clean up and try again in one second */
g_object_unref (context->monitor);
context->monitor = g_volume_monitor_get ();
g_timeout_add_seconds(1, (GSourceFunc) tvm_block_device_mount_retry,
context);
}
return FALSE;
}
What's the best way to get this put into thunar-volman?
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1312641
Title:
Removable drives and media do not automatically mounted at boot
To manage notifications about this bug go to:
https://bugs.launchpad.net/thunar-volman/+bug/1312641/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs