diff options
author | Ted Gould <ted@gould.cx> | 2011-02-24 10:23:50 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2011-02-24 10:23:50 -0600 |
commit | dc6b4bb04ed3af5311ca234fdb119c47228abc30 (patch) | |
tree | f069ff534098971e6e52bb52b86b4e67da01c684 | |
parent | e2450d6610c20ea58f3626c60d9f438701cbcdb5 (diff) | |
parent | 017f243186a993adda6b55eac436bb7b6ce784c2 (diff) | |
download | libdbusmenu-dc6b4bb04ed3af5311ca234fdb119c47228abc30.tar.gz libdbusmenu-dc6b4bb04ed3af5311ca234fdb119c47228abc30.tar.bz2 libdbusmenu-dc6b4bb04ed3af5311ca234fdb119c47228abc30.zip |
Unregister the theme signal handler on destruction instead of doing it through an odd reference.
-rw-r--r-- | libdbusmenu-gtk/parser.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/libdbusmenu-gtk/parser.c b/libdbusmenu-gtk/parser.c index f2fcb58..a68508b 100644 --- a/libdbusmenu-gtk/parser.c +++ b/libdbusmenu-gtk/parser.c @@ -161,17 +161,10 @@ dbusmenu_item_freed (gpointer data, GObject * obj) } } -/* Called if we replace the cache on the object with a new - dbusmenu menuitem */ static void -object_cache_freed (gpointer data) +widget_freed (gpointer data, GObject * obj) { - // TODO: make this have access to both data and obj so we can call these - //if (!G_IS_OBJECT(obj)) return; - //g_object_weak_unref(G_OBJECT(obj), dbusmenu_cache_freed, data); - //dbusmenu_cache_freed(data, obj); - - g_signal_handlers_disconnect_by_func(gtk_icon_theme_get_default(), G_CALLBACK(theme_changed_cb), data); + g_signal_handlers_disconnect_by_func(gtk_icon_theme_get_default(), G_CALLBACK(theme_changed_cb), obj); return; } @@ -213,8 +206,8 @@ new_menuitem (GtkWidget * widget) ParserData *pdata = g_new0 (ParserData, 1); g_object_set_data_full(G_OBJECT(item), PARSER_DATA, pdata, parse_data_free); - g_object_set_data_full(G_OBJECT(widget), CACHED_MENUITEM, item, object_cache_freed); g_object_weak_ref(G_OBJECT(item), dbusmenu_item_freed, NULL); + g_object_weak_ref(G_OBJECT(widget), widget_freed, NULL); pdata->widget = widget; g_object_add_weak_pointer(G_OBJECT (widget), (gpointer*)&pdata->widget); |