aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-gtk/client.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-04-10 22:34:34 -0500
committerTed Gould <ted@gould.cx>2011-04-10 22:34:34 -0500
commit45a154a22b63d3b07c2d2dd1304992c0a5b996f1 (patch)
treef7292af67a39d93f70ae65049e34fb19d9505109 /libdbusmenu-gtk/client.c
parent92c752c757fa6baf053590f62228c0163b955cfd (diff)
downloadlibdbusmenu-45a154a22b63d3b07c2d2dd1304992c0a5b996f1.tar.gz
libdbusmenu-45a154a22b63d3b07c2d2dd1304992c0a5b996f1.tar.bz2
libdbusmenu-45a154a22b63d3b07c2d2dd1304992c0a5b996f1.zip
Attaching the data in a way that it'll cleanup itself
Diffstat (limited to 'libdbusmenu-gtk/client.c')
-rw-r--r--libdbusmenu-gtk/client.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libdbusmenu-gtk/client.c b/libdbusmenu-gtk/client.c
index 4479645..aabdbc8 100644
--- a/libdbusmenu-gtk/client.c
+++ b/libdbusmenu-gtk/client.c
@@ -571,7 +571,8 @@ process_submenu (DbusmenuMenuitem * mi, GtkMenuItem * gmi, GVariant * variant, D
} else {
/* We need to build a menu for these guys to live in. */
GtkMenu * menu = GTK_MENU(gtk_menu_new());
- g_object_set_data(G_OBJECT(mi), data_menu, menu);
+ g_object_ref_sink(menu);
+ g_object_set_data_full(G_OBJECT(mi), data_menu, menu, g_object_unref);
gtk_menu_item_set_submenu(gmi, GTK_WIDGET(menu));
@@ -782,7 +783,7 @@ delete_child (DbusmenuMenuitem * mi, DbusmenuMenuitem * child, DbusmenuGtkClient
if (menu != NULL) {
gtk_widget_destroy(GTK_WIDGET(menu));
- g_object_set_data(G_OBJECT(mi), data_menu, NULL);
+ g_object_steal_data(G_OBJECT(mi), data_menu);
}
}