diff options
author | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2011-06-29 11:45:33 -0300 |
---|---|---|
committer | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2011-06-29 11:45:33 -0300 |
commit | ea81c710d0c0df31035297c4be6ca50b196560c6 (patch) | |
tree | 23602c757c3acc96a0d52cfc9e99bd86b887e4c0 /gtk/gtkbuilder.c | |
parent | 445ac0e650793087b6f1a2d756f8539a846f93d4 (diff) | |
download | gtk+-ea81c710d0c0df31035297c4be6ca50b196560c6.tar.gz |
Make GtkBuilder do not delay construct properties that can be resolved
(so construct is respected when possible) and skip construct only props that
can not.
Diffstat (limited to 'gtk/gtkbuilder.c')
-rw-r--r-- | gtk/gtkbuilder.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/gtk/gtkbuilder.c b/gtk/gtkbuilder.c index 3e970e037a..d11fcf9c18 100644 --- a/gtk/gtkbuilder.c +++ b/gtk/gtkbuilder.c @@ -503,29 +503,29 @@ gtk_builder_get_parameters (GtkBuilder *builder, if (G_IS_PARAM_SPEC_OBJECT (pspec) && (G_PARAM_SPEC_VALUE_TYPE (pspec) != GDK_TYPE_PIXBUF)) { - if (pspec->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY)) + GObject *object = gtk_builder_get_object (builder, prop->data); + + if (object) + { + g_value_init (¶meter.value, G_OBJECT_TYPE (object)); + g_value_set_object (¶meter.value, object); + } + else { - GObject *object; - object = gtk_builder_get_object (builder, prop->data); - if (!object) + if (pspec->flags & G_PARAM_CONSTRUCT_ONLY) { g_warning ("Failed to get constuct only property " "%s of %s with value `%s'", prop->name, object_name, prop->data); continue; } - g_value_init (¶meter.value, G_OBJECT_TYPE (object)); - g_value_set_object (¶meter.value, object); - } - else - { + /* Delay setting property */ property = g_slice_new (DelayedProperty); property->object = g_strdup (object_name); property->name = g_strdup (prop->name); property->value = g_strdup (prop->data); builder->priv->delayed_properties = g_slist_prepend (builder->priv->delayed_properties, property); - continue; } } |