aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-alert.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2010-12-21 20:09:27 +0800
committerMilan Crha <mcrha@redhat.com>2010-12-21 20:09:27 +0800
commite605a2888b2e9a2d7aabd704941a669f26ad9e51 (patch)
tree0e185d32656988309c391050815f058655b6854b /e-util/e-alert.c
parente628ec9c59a2cc5b2aecf72ef885b744cabd2537 (diff)
downloadgsoc2013-evolution-e605a2888b2e9a2d7aabd704941a669f26ad9e51.tar.gz
gsoc2013-evolution-e605a2888b2e9a2d7aabd704941a669f26ad9e51.tar.zst
gsoc2013-evolution-e605a2888b2e9a2d7aabd704941a669f26ad9e51.zip
Disconnect signal handlers from actions in alert_dispose()
Diffstat (limited to 'e-util/e-alert.c')
-rw-r--r--e-util/e-alert.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/e-util/e-alert.c b/e-util/e-alert.c
index 9d55c40ddf..f99ca51c57 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);