]> Dogcows Code - chaz/openbox/blobdiff - openbox/menu.c
Merge branch 'backport' into work
[chaz/openbox] / openbox / menu.c
index 97af104e17dba688dc36193331585902e1237aac..63b74b9520aae55962c5b17ee342022920d3f89b 100644 (file)
@@ -35,6 +35,7 @@
 #include "client_list_combined_menu.h"
 #include "gettext.h"
 #include "obt/parse.h"
+#include "obt/paths.h"
 
 typedef struct _ObMenuParseState ObMenuParseState;
 
@@ -94,8 +95,7 @@ void menu_startup(gboolean reconfig)
                                        "openbox_menu"))
         {
             loaded = TRUE;
-            obt_parse_tree(menu_parse_inst,
-                           obt_parse_instance_root(menu_parse_inst)->children);
+            obt_parse_tree_from_root(menu_parse_inst);
             obt_parse_close(menu_parse_inst);
         } else
             g_message(_("Unable to find a valid menu file '%s'"),
@@ -107,8 +107,7 @@ void menu_startup(gboolean reconfig)
                                        "menu.xml",
                                        "openbox_menu"))
         {
-            obt_parse_tree(menu_parse_inst,
-                           obt_parse_instance_root(menu_parse_inst)->children);
+            obt_parse_tree_from_root(menu_parse_inst);
             obt_parse_close(menu_parse_inst);
         } else
             g_message(_("Unable to find a valid menu file '%s'"),
@@ -160,7 +159,6 @@ void menu_clear_pipe_caches(void)
 
 void menu_pipe_execute(ObMenu *self)
 {
-    xmlNodePtr node;
     gchar *output;
     GError *err = NULL;
 
@@ -181,7 +179,7 @@ void menu_pipe_execute(ObMenu *self)
     {
         menu_parse_state.pipe_creator = self;
         menu_parse_state.parent = self;
-        obt_parse_tree(menu_parse_inst, node->children);
+        obt_parse_tree_from_root(menu_parse_inst);
         obt_parse_close(menu_parse_inst);
     } else {
         g_message(_("Invalid output from pipe-menu '%s'"), self->execute);
@@ -317,7 +315,7 @@ static void parse_menu(xmlNodePtr node, gpointer data)
         if ((menu = menu_new(name, title, TRUE, NULL))) {
             menu->pipe_creator = state->pipe_creator;
             if (obt_parse_attr_string(node, "execute", &script)) {
-                menu->execute = parse_expand_tilde(script);
+                menu->execute = obt_paths_expand_tilde(script);
             } else {
                 ObMenu *old;
 
@@ -502,6 +500,7 @@ void menu_entry_unref(ObMenuEntry *self)
     if (self && --self->ref == 0) {
         switch (self->type) {
         case OB_MENU_ENTRY_TYPE_NORMAL:
+            RrImageUnref(self->data.normal.icon);
             g_free(self->data.normal.label);
             while (self->data.normal.actions) {
                 actions_act_unref(self->data.normal.actions->data);
This page took 0.025689 seconds and 4 git commands to generate.