aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-gtk/parser.c
diff options
context:
space:
mode:
authorMichael Terry <mike@mterry.name>2011-02-28 09:56:59 -0500
committerMichael Terry <mike@mterry.name>2011-02-28 09:56:59 -0500
commitac984fac079ac48c7687aea3dce5808ace890b3f (patch)
tree68fa993a9031de42df3a2df3efc99107d03b412f /libdbusmenu-gtk/parser.c
parent218b2b32a73881b198f09f74725d395d2d27acdc (diff)
downloadlibdbusmenu-ac984fac079ac48c7687aea3dce5808ace890b3f.tar.gz
libdbusmenu-ac984fac079ac48c7687aea3dce5808ace890b3f.tar.bz2
libdbusmenu-ac984fac079ac48c7687aea3dce5808ace890b3f.zip
disconnect some more signals when menuitem dies
Diffstat (limited to 'libdbusmenu-gtk/parser.c')
-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);
}