From ad2a11e5f03fb48c74af8e4c0dd09f954cf967a9 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 18 Jun 2013 14:59:44 -0500 Subject: When a widget internally holds a link to a dbusmenuitem, keep a ref on that dbusmenuitem until that link is removed. --- libdbusmenu-gtk/parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libdbusmenu-gtk') diff --git a/libdbusmenu-gtk/parser.c b/libdbusmenu-gtk/parser.c index 9d1b034..b09e984 100644 --- a/libdbusmenu-gtk/parser.c +++ b/libdbusmenu-gtk/parser.c @@ -312,7 +312,7 @@ disconnect_from_widget (GtkWidget * widget) pdata->widget = NULL; /* clear the widget's menuitem pointer */ - g_object_steal_data(o, CACHED_MENUITEM); + g_object_set_data(o, CACHED_MENUITEM, NULL); } } @@ -406,7 +406,7 @@ new_menuitem (GtkWidget * widget) pdata->widget = widget; g_object_add_weak_pointer(G_OBJECT (widget), (gpointer*)&pdata->widget); - g_object_set_data(G_OBJECT(widget), CACHED_MENUITEM, item); + g_object_set_data_full(G_OBJECT(widget), CACHED_MENUITEM, g_object_ref(item), g_object_unref); return item; } -- cgit v1.2.3