aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-03-01 11:12:10 -0600
committerTed Gould <ted@gould.cx>2011-03-01 11:12:10 -0600
commitb0dc6fe5735df50b2e4e29d45e1a44da159c698e (patch)
tree1f6cc2955fc999062ce782fcd375c4329acdab61
parent5c158235fd352639dee76cf27ae1d186a502d35a (diff)
parentac984fac079ac48c7687aea3dce5808ace890b3f (diff)
downloadlibdbusmenu-b0dc6fe5735df50b2e4e29d45e1a44da159c698e.tar.gz
libdbusmenu-b0dc6fe5735df50b2e4e29d45e1a44da159c698e.tar.bz2
libdbusmenu-b0dc6fe5735df50b2e4e29d45e1a44da159c698e.zip
Making sure to disconnect all signal handlers.
-rw-r--r--libdbusmenu-gtk/parser.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libdbusmenu-gtk/parser.c b/libdbusmenu-gtk/parser.c
index 97f7979..8045b7f 100644
--- a/libdbusmenu-gtk/parser.c
+++ b/libdbusmenu-gtk/parser.c
@@ -129,6 +129,12 @@ parse_data_free (gpointer data)
if (pdata != NULL && pdata->widget != NULL) {
g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
0, 0, NULL, G_CALLBACK(widget_notify_cb), NULL);
+ g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
+ 0, 0, NULL, G_CALLBACK(accel_changed), NULL);
+ g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
+ 0, 0, NULL, G_CALLBACK(checkbox_toggled), NULL);
+ g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
+ 0, 0, NULL, G_CALLBACK(menuitem_notify_cb), NULL);
g_object_remove_weak_pointer(G_OBJECT(pdata->widget), (gpointer*)&pdata->widget);
}