]> Dogcows Code - chaz/openbox/blobdiff - openbox/menu.c
Merge branch 'backport' into work
[chaz/openbox] / openbox / menu.c
index f6d19d0127fdd1fe01aa9697b938e836964562e3..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;
 
@@ -158,7 +159,6 @@ void menu_clear_pipe_caches(void)
 
 void menu_pipe_execute(ObMenu *self)
 {
-    xmlNodePtr node;
     gchar *output;
     GError *err = NULL;
 
@@ -179,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);
@@ -315,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;
 
@@ -500,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.022616 seconds and 4 git commands to generate.