summaryrefslogtreecommitdiff
path: root/openbox/action.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbox/action.c')
-rw-r--r--openbox/action.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/openbox/action.c b/openbox/action.c
index 0025187b..2f7c5c7d 100644
--- a/openbox/action.c
+++ b/openbox/action.c
@@ -693,7 +693,7 @@ ObAction *action_from_string(char *name)
return a;
}
-ObAction *action_parse(xmlDocPtr doc, xmlNodePtr node)
+ObAction *action_parse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
{
char *actname;
ObAction *act = NULL;
@@ -705,8 +705,13 @@ ObAction *action_parse(xmlDocPtr doc, xmlNodePtr node)
if ((n = parse_find_node("execute", node->xmlChildrenNode)))
act->data.execute.path = parse_string(doc, n);
} else if (act->func == action_showmenu) {
- if ((n = parse_find_node("menu", node->xmlChildrenNode)))
+ if ((n = parse_find_node("menu", node->xmlChildrenNode))) {
+ gchar *plugin;
+
act->data.showmenu.name = parse_string(doc, n);
+ if (parse_attr_string("plugin", n, &plugin))
+ menu_open_plugin(i, act->data.showmenu.name, plugin);
+ }
} else if (act->func == action_desktop) {
if ((n = parse_find_node("desktop", node->xmlChildrenNode)))
act->data.desktop.desk = parse_int(doc, n);