[evolution] Disconnect signal handlers from actions in alert_dispose()



commit e605a2888b2e9a2d7aabd704941a669f26ad9e51
Author: Milan Crha <mcrha redhat com>
Date:   Tue Dec 21 13:09:27 2010 +0100

    Disconnect signal handlers from actions in alert_dispose()

 e-util/e-alert.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/e-util/e-alert.c b/e-util/e-alert.c
index 9d55c40..f99ca51 100644
--- a/e-util/e-alert.c
+++ b/e-util/e-alert.c
@@ -493,8 +493,13 @@ alert_dispose (GObject *object)
 
 	priv = E_ALERT_GET_PRIVATE (object);
 
-	while (!g_queue_is_empty (&priv->actions))
-		g_object_unref (g_queue_pop_head (&priv->actions));
+	while (!g_queue_is_empty (&priv->actions)) {
+		GtkAction *action = g_queue_pop_head (&priv->actions);
+
+		g_signal_handlers_disconnect_by_func (action, G_CALLBACK (alert_action_activate), object);
+
+		g_object_unref (action);
+	}
 
 	/* Chain up to parent's dispose() method. */
 	G_OBJECT_CLASS (e_alert_parent_class)->dispose (object);



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