X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Factions.c;h=3bfb3b3f24011294293c5c51224ffba674851382;hb=cfb33de8bc774c0838a7180f066eccc11b8a41cf;hp=5f146b7eb890f26c8b743ed1528b721d807e4888;hpb=b32181ac69d3aa18756348991028f809cb2ee046;p=chaz%2Fopenbox diff --git a/openbox/actions.c b/openbox/actions.c index 5f146b7e..3bfb3b3f 100644 --- a/openbox/actions.c +++ b/openbox/actions.c @@ -31,6 +31,7 @@ static void actions_definition_ref(ObActionsDefinition *def); static void actions_definition_unref(ObActionsDefinition *def); static gboolean actions_interactive_begin_act(ObActionsAct *act, guint state); static void actions_interactive_end_act(); +static ObActionsAct* actions_build_act_from_string(const gchar *name); static ObActionsAct *interactive_act = NULL; static guint interactive_initial_state = 0; @@ -123,7 +124,7 @@ static void actions_definition_unref(ObActionsDefinition *def) } } -ObActionsAct* actions_parse_string(const gchar *name) +ObActionsAct* actions_build_act_from_string(const gchar *name) { GSList *it; ObActionsDefinition *def = NULL; @@ -151,6 +152,17 @@ ObActionsAct* actions_parse_string(const gchar *name) return act; } +ObActionsAct* actions_parse_string(const gchar *name) +{ + ObActionsAct *act = NULL; + + if ((act = actions_build_act_from_string(name))) + if (act->def->setup) + act->options = act->def->setup(NULL, NULL, NULL); + + return act; +} + ObActionsAct* actions_parse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) @@ -159,7 +171,7 @@ ObActionsAct* actions_parse(ObParseInst *i, ObActionsAct *act = NULL; if (parse_attr_string("name", node, &name)) { - if ((act = actions_parse_string(name))) + if ((act = actions_build_act_from_string(name))) /* there is more stuff to parse here */ if (act->def->setup) act->options = act->def->setup(i, doc, node->xmlChildrenNode);