X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fmenu.c;h=4a259387009c43bd491fea71fa6162cb1b83d0d6;hb=0f544808b8372a6c8a2cbfae214f2803dd3c6170;hp=286434cf09218672055ff94513c7d122b02f1a53;hpb=84a60ebbfbdf9deea446c35c53f8703edeb8213d;p=chaz%2Fopenbox diff --git a/openbox/menu.c b/openbox/menu.c index 286434cf..4a259387 100644 --- a/openbox/menu.c +++ b/openbox/menu.c @@ -39,20 +39,27 @@ static gboolean menu_open(gchar *file, xmlDocPtr *doc, xmlNodePtr *node) gboolean loaded = TRUE; gchar *p; - p = g_build_filename(g_get_home_dir(), ".openbox", file, NULL); - if (!parse_load(p, "openbox_menu", doc, node)) { - g_free(p); - p = g_build_filename(RCDIR, file, NULL); + if (file[0] == '/') { + if (!parse_load(file, "openbox_menu", doc, node)) { + g_warning("Failed to load menu from '%s'", file); + loaded = FALSE; + } + } else { + p = g_build_filename(g_get_home_dir(), ".openbox", file, NULL); if (!parse_load(p, "openbox_menu", doc, node)) { g_free(p); - p = g_strdup(file); + p = g_build_filename(RCDIR, file, NULL); if (!parse_load(p, "openbox_menu", doc, node)) { - g_warning("Failed to load menu from '%s'", file); - loaded = FALSE; + g_free(p); + p = g_strdup(file); + if (!parse_load(p, "openbox_menu", doc, node)) { + g_warning("Failed to load menu from '%s'", file); + loaded = FALSE; + } } } + g_free(p); } - g_free(p); return loaded; }