diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-08-14 06:39:56 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-08-14 06:39:56 +0000 |
| commit | 12af0aedf2da4f360954cfaaeaf77234b36e4858 (patch) | |
| tree | 4a91cd211729f8ba7216af8633de22432479bbc0 | |
| parent | a276868265ac8b6fc3ea878d1aab2a7d5e78f3a8 (diff) | |
make putting plugin menus in a menu closer to working..
| -rw-r--r-- | openbox/menu.c | 10 |
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")) { |
