diff options
author | Johan Dahlin <jdahlin@async.com.br> | 2007-06-30 18:27:39 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2007-06-30 18:27:39 +0000 |
commit | aaab9c05a517439d646d3456f81b7d076ca7fd85 (patch) | |
tree | 36cdd127db2bd251bdbcf3b45bb2abda1c410b77 /gtk/gtkwidget.c | |
parent | d793d416da88a1923bb14bdbf0eea7c7bad7ac5a (diff) | |
download | gtk+-aaab9c05a517439d646d3456f81b7d076ca7fd85.tar.gz |
Improve error handling for enum/flags, rename the converter functions to
2007-06-30 Johan Dahlin <jdahlin@async.com.br>
* gtk/gtkbuilder.c:
* gtk/gtkbuilder.h:
* gtk/gtkbuilderparser.c:
* gtk/gtkbuilderprivate.h:
* gtk/gtkwidget.c:
* tests/buildertest.c:
Improve error handling for enum/flags, rename the converter functions
to be consistent. Add tests. Fixes #452465
svn path=/trunk/; revision=18312
Diffstat (limited to 'gtk/gtkwidget.c')
-rw-r--r-- | gtk/gtkwidget.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 2a54b6e9e3..25fcb5f1fe 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -53,6 +53,7 @@ #include "gtktooltip.h" #include "gtkinvisible.h" #include "gtkbuildable.h" +#include "gtkbuilderprivate.h" #include "gtkalias.h" #define WIDGET_CLASS(w) GTK_WIDGET_GET_CLASS (w) @@ -8517,7 +8518,13 @@ accel_group_start_element (GMarkupParseContext *context, if (strcmp (names[i], "key") == 0) key = gdk_keyval_from_name (values[i]); else if (strcmp (names[i], "modifiers") == 0) - modifiers = _gtk_builder_flags_from_string (GDK_TYPE_MODIFIER_TYPE, values[i]); + { + if (!_gtk_builder_flags_from_string (GDK_TYPE_MODIFIER_TYPE, + values[i], + &modifiers, + error)) + return; + } else if (strcmp (names[i], "signal") == 0) signal = g_strdup (values[i]); } |