[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