Add a GMount::pre-unmount signal
authorCarlos Garnacho <carlos@imendio.com>
Tue, 5 May 2009 18:45:18 +0000 (14:45 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 5 May 2009 18:45:18 +0000 (14:45 -0400)
This is the per-mount analogon to GVolumeMonitor::mount-pre-unmount.

gio/gmount.c
gio/gmount.h
gio/gunixmount.c

index dbdbeaf..b8c3395 100644 (file)
@@ -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;
     }
index 027960d..a1afe2c 100644 (file)
@@ -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;
index 603c0ba..406c0ce 100644 (file)
@@ -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);
 }