aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--e-util/ChangeLog7
-rw-r--r--e-util/e-config.c4
2 files changed, 11 insertions, 0 deletions
diff --git a/e-util/ChangeLog b/e-util/ChangeLog
index 461861d7c3..d9701d49b3 100644
--- a/e-util/ChangeLog
+++ b/e-util/ChangeLog
@@ -1,3 +1,10 @@
+2008-11-27 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #332729
+
+ * e-config.c: (ep_finalise): Disconnect handlers on the widget before
+ freeing the structure it is using.
+
2008-11-12 Milan Crha <mcrha@redhat.com>
** Fix for bug #559810
diff --git a/e-util/e-config.c b/e-util/e-config.c
index d320bcd7af..03a553feb2 100644
--- a/e-util/e-config.c
+++ b/e-util/e-config.c
@@ -122,6 +122,10 @@ ep_finalise(GObject *o)
}
while ( (wn = (struct _widget_node *)e_dlist_remhead(&p->widgets)) ) {
+ /* disconnect the gtk_widget_destroyed function from the widget */
+ if (wn->widget)
+ g_signal_handlers_disconnect_matched (wn->widget, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, &wn->widget);
+
g_free(wn);
}