[Xfce4-commits] <gigolo:master> Use a GMountOperation when mounting volumes (#6047)

Enrico Tröger noreply at xfce.org
Sun Dec 6 11:52:01 CET 2009


Updating branch refs/heads/master
         to 6dea64dad7bd5067c25197db1d7305a5a934fa13 (commit)
       from daeacd0d20fdaa82da931fb84e956d4067bb4902 (commit)

commit 6dea64dad7bd5067c25197db1d7305a5a934fa13
Author: Enrico Tröger <enrico at xfce.org>
Date:   Sun Dec 6 11:50:33 2009 +0100

    Use a GMountOperation when mounting volumes (#6047)
    
    This should make it possible to mount volumes which require user credentials like a root password.
    Patch by "herd".

 src/backendgvfs.c |    9 +++++++--
 src/backendgvfs.h |    2 +-
 src/window.c      |    2 +-
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/backendgvfs.c b/src/backendgvfs.c
index 1146de4..d1643fc 100644
--- a/src/backendgvfs.c
+++ b/src/backendgvfs.c
@@ -489,14 +489,19 @@ static void unmount_finished_cb(GObject *src, GAsyncResult *res, gpointer backen
 }
 
 
-gboolean gigolo_backend_gvfs_mount_volume(GigoloBackendGVFS *backend, gpointer vol)
+gboolean gigolo_backend_gvfs_mount_volume(GigoloBackendGVFS *backend, GtkWindow *window, gpointer vol)
 {
 	g_return_val_if_fail(backend != NULL, FALSE);
+	g_return_val_if_fail(window != NULL, FALSE);
 	g_return_val_if_fail(vol != NULL, FALSE);
 
 	if (! G_IS_MOUNT(vol) && G_IS_VOLUME(vol) && g_volume_can_mount(G_VOLUME(vol)))
 	{
-		g_volume_mount(G_VOLUME(vol), G_MOUNT_MOUNT_NONE, NULL, NULL, volume_mount_finished_cb, backend);
+		GMountOperation *op = gigolo_mount_operation_new(window);
+
+		g_volume_mount(G_VOLUME(vol), G_MOUNT_MOUNT_NONE, op, NULL, volume_mount_finished_cb, backend);
+
+		g_object_unref(op);
 		return TRUE;
 	}
 
diff --git a/src/backendgvfs.h b/src/backendgvfs.h
index b544ddf..5a72fb2 100644
--- a/src/backendgvfs.h
+++ b/src/backendgvfs.h
@@ -91,7 +91,7 @@ GigoloBackendGVFS*	gigolo_backend_gvfs_new							(void);
 gboolean			gigolo_backend_gvfs_is_mount					(gpointer mount);
 void				gigolo_backend_gvfs_get_name_and_uri_from_mount	(gpointer mount, gchar **name, gchar **uri);
 
-gboolean			gigolo_backend_gvfs_mount_volume				(GigoloBackendGVFS *backend, gpointer vol);
+gboolean			gigolo_backend_gvfs_mount_volume				(GigoloBackendGVFS *backend, GtkWindow *window, gpointer vol);
 void				gigolo_backend_gvfs_unmount_mount				(GigoloBackendGVFS *backend, gpointer mount, GtkWindow *parent);
 
 void				gigolo_backend_gvfs_mount_uri					(GigoloBackendGVFS *backend,
diff --git a/src/window.c b/src/window.c
index 8d43039..d6d6a0f 100644
--- a/src/window.c
+++ b/src/window.c
@@ -284,7 +284,7 @@ static void action_mount_cb(G_GNUC_UNUSED GtkAction *action, GigoloWindow *windo
 			GIGOLO_WINDOW_COL_REF, &vol, -1);
 
 		if (ref_type == GIGOLO_WINDOW_REF_TYPE_VOLUME)
-			handled = gigolo_backend_gvfs_mount_volume(priv->backend_gvfs, vol);
+			handled = gigolo_backend_gvfs_mount_volume(priv->backend_gvfs, GTK_WINDOW(window), vol);
 	}
 
 	if (! handled)



More information about the Xfce4-commits mailing list