From d89cc0d7cbad8b6904931440e579e291ce81780d Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 5 May 2009 14:45:18 -0400 Subject: [PATCH] Add a GMount::pre-unmount signal This is the per-mount analogon to GVolumeMonitor::mount-pre-unmount. --- gio/gmount.c | 16 ++++++++++++++++ gio/gmount.h | 3 +++ gio/gunixmount.c | 2 ++ 3 files changed, 21 insertions(+) diff --git a/gio/gmount.c b/gio/gmount.c index dbdbeaf..b8c3395 100644 --- a/gio/gmount.c +++ b/gio/gmount.c @@ -141,6 +141,22 @@ g_mount_base_init (gpointer g_class) NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + /** + * GMount::pre-unmount: + * @mount: the object on which the signal is emitted + * + * This signal is emitted when the #GMount is about to be + * unmounted. + * + * Since: 2.22. + **/ + g_signal_new (I_("pre-unmount"), + G_TYPE_MOUNT, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GMountIface, pre_unmount), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); initialized = TRUE; } diff --git a/gio/gmount.h b/gio/gmount.h index 027960d..a1afe2c 100644 --- a/gio/gmount.h +++ b/gio/gmount.h @@ -126,6 +126,9 @@ struct _GMountIface gboolean force_rescan, GCancellable *cancellable, GError **error); + + /* yet more signals */ + void (* pre_unmount) (GMount *mount); }; GType g_mount_get_type (void) G_GNUC_CONST; diff --git a/gio/gunixmount.c b/gio/gunixmount.c index 603c0ba..406c0ce 100644 --- a/gio/gunixmount.c +++ b/gio/gunixmount.c @@ -394,6 +394,8 @@ eject_unmount_do (GMount *mount, if (unix_mount->volume_monitor != NULL) g_signal_emit_by_name (unix_mount->volume_monitor, "mount-pre-unmount", mount); + g_signal_emit_by_name (mount, "pre-unmount", 0); + g_timeout_add (500, (GSourceFunc) eject_unmount_do_cb, data); } -- 2.7.4