[glib] Add a GMount::pre-unmount signal



commit d89cc0d7cbad8b6904931440e579e291ce81780d
Author: Carlos Garnacho <carlos imendio com>
Date:   Tue May 5 14:45:18 2009 -0400

    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(+), 0 deletions(-)

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);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]