diff options
author | Tristan Van Berkom <vantr@TheBully.local> | 2009-07-01 12:51:21 -0400 |
---|---|---|
committer | Tristan Van Berkom <vantr@TheBully.local> | 2009-07-01 12:51:21 -0400 |
commit | e68c4987ab1ec13d06c49f62c29d8c5376faec2f (patch) | |
tree | 171d154d334b3093e314461de7e1b8072c685a4b | |
parent | 282bf24731910dcd7d2117ec0b27d05cf8915646 (diff) | |
download | glade-e68c4987ab1ec13d06c49f62c29d8c5376faec2f.tar.gz |
* plugins/gtk+/glade-gtk.c: Fixed loading state of assigned GtkTreeModels of GtkCellRendererCombo
objects (bug 566928).
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | plugins/gtk+/glade-gtk.c | 37 |
2 files changed, 29 insertions, 13 deletions
@@ -1,3 +1,8 @@ +2009-07-01 Tristan Van Berkom <tvb@gnome.org> + + * plugins/gtk+/glade-gtk.c: Fixed loading state of assigned GtkTreeModels of GtkCellRendererCombo + objects (bug 566928). + 2009-06-29 Tristan Van Berkom <tvb@gnome.org> * configure.ac, NEWS: Rolling Glade 3.6.7 diff --git a/plugins/gtk+/glade-gtk.c b/plugins/gtk+/glade-gtk.c index 0cb6effa..07531414 100644 --- a/plugins/gtk+/glade-gtk.c +++ b/plugins/gtk+/glade-gtk.c @@ -10666,24 +10666,19 @@ glade_gtk_cell_renderer_write_widget (GladeWidgetAdaptor *adaptor, GWA_GET_CLASS (G_TYPE_OBJECT)->write_widget (adaptor, widget, context, node); } -void -glade_gtk_cell_renderer_read_widget (GladeWidgetAdaptor *adaptor, - GladeWidget *widget, - GladeXmlNode *node) +static void +glade_gtk_cell_renderer_parse_finished (GladeProject *project, + GladeWidget *widget) { GladeProperty *property; GList *l; static gint attr_len = 0, use_attr_len = 0; - if (!glade_xml_node_verify - (node, GLADE_XML_TAG_WIDGET (glade_project_get_format (widget->project)))) - return; - - /* First chain up and read in all the properties... */ - GWA_GET_CLASS (G_TYPE_OBJECT)->read_widget (adaptor, widget, node); - - - /* Now set "use-attr-*" everywhere that the object property is non-default */ + /* Set "use-attr-*" everywhere that the object property is non-default + * + * We do this in the finished handler because some properties may be + * object type properties (which may be anywhere in the glade file). + */ if (!attr_len) { attr_len = strlen ("attr-"); @@ -10706,7 +10701,23 @@ glade_gtk_cell_renderer_read_widget (GladeWidgetAdaptor *adaptor, glade_property_set (switch_prop, FALSE); } } +} + +void +glade_gtk_cell_renderer_read_widget (GladeWidgetAdaptor *adaptor, + GladeWidget *widget, + GladeXmlNode *node) +{ + if (!glade_xml_node_verify + (node, GLADE_XML_TAG_WIDGET (glade_project_get_format (widget->project)))) + return; + /* First chain up and read in all the properties... */ + GWA_GET_CLASS (G_TYPE_OBJECT)->read_widget (adaptor, widget, node); + + g_signal_connect (widget->project, "parse-finished", + G_CALLBACK (glade_gtk_cell_renderer_parse_finished), + widget); } /*--------------------------- GtkCellLayout ---------------------------------*/ |