]> Dogcows Code - chaz/openbox/blobdiff - openbox/config.c
more fixes for the transient tree
[chaz/openbox] / openbox / config.c
index aadc4389f5b7faec7439d5c8676e37d01e04c401..4e3f6f9aaa7204ddb92114b9fc7b0a176dcfe821 100644 (file)
@@ -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;
 
This page took 0.024569 seconds and 4 git commands to generate.