diff --git a/plugins/gtk+/glade-gtk.c b/plugins/gtk+/glade-gtk.c index e729df54..d6e53f12 100644 --- a/plugins/gtk+/glade-gtk.c +++ b/plugins/gtk+/glade-gtk.c @@ -7856,6 +7856,15 @@ glade_gtk_icon_factory_post_create (GladeWidgetAdaptor * adaptor, gtk_icon_factory_add_default (GTK_ICON_FACTORY (object)); } +void +glade_gtk_icon_factory_destroy_object (GladeWidgetAdaptor * adaptor, + GObject *object) +{ + gtk_icon_factory_remove_default (GTK_ICON_FACTORY (object)); + + GWA_GET_CLASS (G_TYPE_OBJECT)->destroy_object (adaptor, object); +} + static void glade_gtk_icon_factory_read_sources (GladeWidget * widget, GladeXmlNode * node) { diff --git a/plugins/gtk+/gtk+.xml.in b/plugins/gtk+/gtk+.xml.in index 1db89850..672c32f0 100644 --- a/plugins/gtk+/gtk+.xml.in +++ b/plugins/gtk+/gtk+.xml.in @@ -2300,6 +2300,7 @@ embedded in another object glade_gtk_icon_factory_post_create + glade_gtk_icon_factory_destroy_object glade_gtk_icon_factory_read_widget glade_gtk_icon_factory_write_widget glade_gtk_icon_factory_set_property diff --git a/tests/create-widgets.c b/tests/create-widgets.c index c1e9b6df..605ea26d 100644 --- a/tests/create-widgets.c +++ b/tests/create-widgets.c @@ -99,8 +99,6 @@ main (int argc, if (G_TYPE_IS_INSTANTIATABLE (adaptor_type) && !G_TYPE_IS_ABSTRACT (adaptor_type) && /* FIXME: Status Icon crashes at dispose time unrealizing it's GtkTrayIcon without a window */ adaptor_type != GTK_TYPE_STATUS_ICON && - /* FIXME: Icon factory adds itself to the default but never removes itself */ - adaptor_type != GTK_TYPE_ICON_FACTORY && /* FIXME: FileChooserButton leaks a GTask which will crash in the following test */ adaptor_type != GTK_TYPE_FILE_CHOOSER_BUTTON && /* FIXME: App choosers leak some async operations after finalization, causing subsequent tests to fail */