X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fconfig.c;h=4e3f6f9aaa7204ddb92114b9fc7b0a176dcfe821;hb=15ec3581518d43532c0622fd7b116a6494122310;hp=aadc4389f5b7faec7439d5c8676e37d01e04c401;hpb=b6d2529acb6e31efbf8c7791e44905a1712da891;p=chaz%2Fopenbox diff --git a/openbox/config.c b/openbox/config.c index aadc4389..4e3f6f9a 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -46,6 +46,7 @@ RrFont *config_font_activewindow; RrFont *config_font_inactivewindow; RrFont *config_font_menuitem; RrFont *config_font_menutitle; +RrFont *config_font_osd; gint config_desktops_num; GSList *config_desktops_names; @@ -278,17 +279,18 @@ static void parse_key(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, if (!parse_attr_string("key", node, &key)) return; + parse_attr_bool("chroot", node, &is_chroot); keylist = g_list_append(keylist, key); - /* a node either contains actions or key bindings */ if ((n = parse_find_node("keybind", node->children))) { while (n) { parse_key(i, doc, n, keylist); n = parse_find_node("keybind", n->next); } - } else if ((n = parse_find_node("action", node->children))) { + } + else if ((n = parse_find_node("action", node->children))) { while (n) { ObAction *action; @@ -304,9 +306,6 @@ static void parse_key(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, g_free(key); keylist = g_list_delete_link(keylist, g_list_last(keylist)); - - /* go to next sibling */ - if (node->next) parse_key(i, doc, node->next, keylist); } static void parse_keyboard(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, @@ -325,7 +324,10 @@ static void parse_keyboard(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, } if ((n = parse_find_node("keybind", node->children))) - parse_key(i, doc, n, NULL); + while (n) { + parse_key(i, doc, n, NULL); + n = parse_find_node("keybind", n->next); + } } /* @@ -466,10 +468,12 @@ static void parse_theme(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, font = &config_font_activewindow; else if (parse_attr_contains("InactiveWindow", n, "place")) font = &config_font_inactivewindow; - else if (parse_attr_contains("MenuTitle", n, "place")) + else if (parse_attr_contains("MenuHeader", n, "place")) font = &config_font_menutitle; else if (parse_attr_contains("MenuItem", n, "place")) font = &config_font_menuitem; + else if (parse_attr_contains("OnScreenDisplay", n, "place")) + font = &config_font_osd; else goto next_font;