]> Dogcows Code - chaz/openbox/commitdiff
make putting plugin menus in a menu closer to working..
authorDana Jansens <danakj@orodu.net>
Thu, 14 Aug 2003 06:39:56 +0000 (06:39 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 14 Aug 2003 06:39:56 +0000 (06:39 +0000)
openbox/menu.c

index 0905cb161dcb6560ec8ab99c1aaf2b1be90a5ac1..0c285cbf1b4e890975b78122e93e3a604b6f4f7d 100644 (file)
@@ -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")) {
This page took 0.0237 seconds and 4 git commands to generate.