Allow loading of menu files outside of your XDG_CONFIG_HOME (Fix bug 5711)
authorDana Jansens <danakj@orodu.net>
Mon, 1 Oct 2012 01:23:58 +0000 (21:23 -0400)
committerDana Jansens <danakj@orodu.net>
Sun, 7 Oct 2012 01:56:56 +0000 (21:56 -0400)
When the given file name can not be found in your XDG_CONFIG_HOME, ie in
 ~/.config/openbox, then try the file name directly.

This means if you specify a menu file such as "/home/dana/helloworld.xml",
openbox will try, in order:
1) ~/.config/openbox/home/dana/helloworld.xml
2) /home/dana/helloworld.xml

And it will load the file you meant when it tries the second one.

openbox/menu.c

index eaf081d..7c49ced 100644 (file)
@@ -90,7 +90,16 @@ void menu_startup(gboolean reconfig)
             loaded = TRUE;
             obt_xml_tree_from_root(menu_parse_inst);
             obt_xml_close(menu_parse_inst);
-        } else
+        }
+        else if (obt_xml_load_file(menu_parse_inst,
+                                   it->data,
+                                   "openbox_menu"))
+        {
+            loaded = TRUE;
+            obt_xml_tree_from_root(menu_parse_inst);
+            obt_xml_close(menu_parse_inst);
+        }
+        else
             g_message(_("Unable to find a valid menu file \"%s\""),
                       (const gchar*)it->data);
     }