diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-09-28 13:47:15 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-09-28 15:09:49 -0400 |
commit | c4069fdcee22cdd481c5f71955447a151c8158e0 (patch) | |
tree | 77ab72b723666ea04cfe83bee79f981afdf187a0 /gtk/gtkbuilderparser.c | |
parent | b17005ddabd1d4a2feff3dd03e1794839e4d2764 (diff) | |
download | gtk+-c4069fdcee22cdd481c5f71955447a151c8158e0.tar.gz |
builder: Fix handling of <binding>
We were only applying <binding> elements when the
object is constructed, which can be triggered by
various things (e.g. a <style> element). Defer
this until we reach </object>, so we can be sure
that we pick up all the bindings.
Testcase included.
Fixes: #4147
Diffstat (limited to 'gtk/gtkbuilderparser.c')
-rw-r--r-- | gtk/gtkbuilderparser.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gtk/gtkbuilderparser.c b/gtk/gtkbuilderparser.c index f91523d598..ccfb1cbc56 100644 --- a/gtk/gtkbuilderparser.c +++ b/gtk/gtkbuilderparser.c @@ -1962,6 +1962,12 @@ end_element (GtkBuildableParseContext *context, object_info->signals = NULL; } + if (object_info->bindings) + { + gtk_builder_take_bindings (data->builder, object_info->object, object_info->bindings); + object_info->bindings = NULL; + } + free_object_info (object_info); } else if (strcmp (element_name, "child") == 0) |