diff --git a/gtk/gtkshortcutaction.c b/gtk/gtkshortcutaction.c index 176fe5fa5a..c1357d04e8 100644 --- a/gtk/gtkshortcutaction.c +++ b/gtk/gtkshortcutaction.c @@ -44,6 +44,10 @@ * - #GtkNamedAction: a shortcut action that calls gtk_widget_activate_action() * - #GtkGActionAction: a shortcut action that activates a given #GAction * - #GtkNothingAction: a shortcut action that does nothing +* +* # GtkShortcutAction as GtkBuildable +* +* GtkShortcut */ #include "config.h" @@ -180,9 +184,7 @@ string_is_function (const char *string, } GtkShortcutAction * -gtk_shortcut_action_parse_builder (GtkBuilder *builder, - const char *string, - GError **error) +gtk_shortcut_action_parse_string (const char *string) { GtkShortcutAction *result; char *arg; @@ -204,6 +206,22 @@ gtk_shortcut_action_parse_builder (GtkBuilder *builder, result = gtk_signal_action_new (arg); g_free (arg); } + else + return NULL; + + return result; +} + +GtkShortcutAction * +gtk_shortcut_action_parse_builder (GtkBuilder *builder, + const char *string, + GError **error) +{ + GtkShortcutAction *result; + + result = gtk_shortcut_action_parse_string (string); + + if (!result) { g_set_error (error, GTK_BUILDER_ERROR, GTK_BUILDER_ERROR_INVALID_VALUE, diff --git a/gtk/gtkshortcutaction.h b/gtk/gtkshortcutaction.h index d599344922..2fa2760324 100644 --- a/gtk/gtkshortcutaction.h +++ b/gtk/gtkshortcutaction.h @@ -60,6 +60,9 @@ GDK_DECLARE_INTERNAL_TYPE (GtkShortcutAction, gtk_shortcut_action, GTK, SHORTCUT GDK_AVAILABLE_IN_ALL char * gtk_shortcut_action_to_string (GtkShortcutAction *self); +GDK_AVAILABLE_IN_ALL +GtkShortcutAction * gtk_shortcut_action_parse_string (const char * string); + GDK_AVAILABLE_IN_ALL void gtk_shortcut_action_print (GtkShortcutAction *self, GString *string);