summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-08-14 06:39:56 +0000
committerDana Jansens <danakj@orodu.net>2003-08-14 06:39:56 +0000
commit12af0aedf2da4f360954cfaaeaf77234b36e4858 (patch)
tree4a91cd211729f8ba7216af8633de22432479bbc0 /openbox
parenta276868265ac8b6fc3ea878d1aab2a7d5e78f3a8 (diff)
make putting plugin menus in a menu closer to working..
Diffstat (limited to 'openbox')
-rw-r--r--openbox/menu.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/openbox/menu.c b/openbox/menu.c
index 0905cb16..0c285cbf 100644
--- a/openbox/menu.c
+++ b/openbox/menu.c
@@ -35,7 +35,7 @@ void parse_menu_full(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
xmlNodePtr nact;
gchar *id = NULL, *title = NULL, *label = NULL, *plugin;
- ObMenu *menu = NULL, *parent;
+ ObMenu *menu = NULL, *parent = NULL;
if (newmenu == TRUE) {
if (!parse_attr_string("id", node, &id))
@@ -52,12 +52,12 @@ void parse_menu_full(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
data.parent = menu;
if (plugin_open_reopen(plugin, i))
- parent = plugin_create(plugin, &data);
+ menu = plugin_create(plugin, &data);
g_free(plugin);
} else
menu = menu_new(title, id, data ? *((ObMenu**)data) : NULL);
- if (data)
+ if (data && menu)
*((ObMenu**)data) = menu;
} else {
menu = (ObMenu *)data;
@@ -78,9 +78,11 @@ void parse_menu_full(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
} else {
parent = menu;
parse_menu(i, doc, node, &parent);
+ }
+
+ if (parent)
menu_add_entry(menu, menu_entry_new_submenu(parent->label,
parent));
- }
}
else if (!xmlStrcasecmp(node->name, (const xmlChar*) "item")) {