gchar *config_title_layout;
+gboolean config_animate_iconify;
+
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;
<position>
<x>700</x>
<y>0</y>
+ <head>1</head>
</position>
- <head>1</head>
</application>
</applications>
*/
settings->decor = -1;
if ((n = parse_find_node("decor", app->children)))
- settings->decor = parse_bool(doc, n);
+ if (!parse_contains("default", doc, n))
+ settings->decor = parse_bool(doc, n);
settings->shade = -1;
if ((n = parse_find_node("shade", app->children)))
- settings->shade = parse_bool(doc, n);
+ if (!parse_contains("default", doc, n))
+ settings->shade = parse_bool(doc, n);
settings->position.x = settings->position.y = 0;
settings->pos_given = FALSE;
if ((n = parse_find_node("position", app->children))) {
- if ((c = parse_find_node("x", n->children))) {
- gchar *s = parse_string(doc, c);
- if (!strcmp(s, "center")) {
- settings->center_x = TRUE;
- x_pos_given = TRUE;
- } else {
- settings->position.x = parse_int(doc, c);
- x_pos_given = TRUE;
+ if ((c = parse_find_node("x", n->children)))
+ if (!parse_contains("default", doc, c)) {
+ gchar *s = parse_string(doc, c);
+ if (!strcmp(s, "center")) {
+ settings->center_x = TRUE;
+ x_pos_given = TRUE;
+ } else {
+ settings->position.x = parse_int(doc, c);
+ x_pos_given = TRUE;
+ }
+ g_free(s);
}
- g_free(s);
- }
-
- if (x_pos_given && (c = parse_find_node("y", n->children))) {
- gchar *s = parse_string(doc, c);
- if (!strcmp(s, "center")) {
- settings->center_y = TRUE;
- settings->pos_given = TRUE;
- } else {
- settings->position.y = parse_int(doc, c);
- settings->pos_given = TRUE;
+
+ if (x_pos_given && (c = parse_find_node("y", n->children)))
+ if (!parse_contains("default", doc, )) {
+ gchar *s = parse_string(doc, c);
+ if (!strcmp(s, "center")) {
+ settings->center_y = TRUE;
+ settings->pos_given = TRUE;
+ } else {
+ settings->position.y = parse_int(doc, c);
+ settings->pos_given = TRUE;
+ }
+ g_free(s);
+ }
+
+ if (settings->pos_given &&
+ (c = parse_find_node("head", n->children)))
+ if (!parse_contains("default", doc, n)) {
+ gchar *s = parse_string(doc, n);
+ if (!strcmp(s, "mouse"))
+ settings->head = -1;
+ else
+ settings->head = parse_int(doc, n);
+ g_free(s);
}
- g_free(s);
- }
}
settings->focus = -1;
if ((n = parse_find_node("focus", app->children)))
- settings->focus = parse_bool(doc, n);
-
- if ((n = parse_find_node("desktop", app->children))) {
- gchar *s = parse_string(doc, n);
- if (!strcmp(s, "all"))
- settings->desktop = DESKTOP_ALL;
- else
- settings->desktop = parse_int(doc, n);
- g_free(s);
- } else
- settings->desktop = DESKTOP_ALL - 1; /* lets hope the user
- * doesn't have 2^32
- * desktops */
-
- if ((n = parse_find_node("head", app->children))) {
- gchar *s = parse_string(doc, n);
- if (!strcmp(s, "mouse"))
- settings->head = -1;
- else
- settings->head = parse_int(doc, n);
- g_free(s);
- }
+ if (!parse_contains("default", doc, n))
+ settings->focus = parse_bool(doc, n);
+
+ if ((n = parse_find_node("desktop", app->children)))
+ if (!parse_contains("default", doc, n)) {
+ gchar *s = parse_string(doc, n);
+ if (!strcmp(s, "all"))
+ settings->desktop = DESKTOP_ALL;
+ else
+ settings->desktop = parse_int(doc, n);
+ g_free(s);
+ } else
+ /* lets hope the user doesn't have 2^32 desktops */
+ settings->desktop = DESKTOP_ALL - 1;
settings->layer = -2;
if ((n = parse_find_node("layer", app->children))) {
GList *keylist)
{
gchar *key;
- ObAction *action;
- xmlNodePtr n, nact;
- GList *it;
+ xmlNodePtr n;
+ gboolean is_chroot = FALSE;
- if ((n = parse_find_node("chainQuitKey", node))) {
- key = parse_string(doc, n);
- translate_key(key, &config_keyboard_reset_state,
- &config_keyboard_reset_keycode);
- g_free(key);
- }
+ if (!parse_attr_string("key", node, &key))
+ return;
- n = parse_find_node("keybind", node);
- while (n) {
- if (parse_attr_string("key", n, &key)) {
- keylist = g_list_append(keylist, key);
+ parse_attr_bool("chroot", node, &is_chroot);
- parse_key(i, doc, n->children, keylist);
+ keylist = g_list_append(keylist, key);
- it = g_list_last(keylist);
- g_free(it->data);
- keylist = g_list_delete_link(keylist, it);
+ if ((n = parse_find_node("keybind", node->children))) {
+ while (n) {
+ parse_key(i, doc, n, keylist);
+ n = parse_find_node("keybind", n->next);
}
- n = parse_find_node("keybind", n->next);
}
- if (keylist) {
- nact = parse_find_node("action", node);
- while (nact) {
- if ((action = action_parse(i, doc, nact,
- OB_USER_ACTION_KEYBOARD_KEY)))
+ else if ((n = parse_find_node("action", node->children))) {
+ while (n) {
+ ObAction *action;
+
+ action = action_parse(i, doc, n, OB_USER_ACTION_KEYBOARD_KEY);
+ if (action)
keyboard_bind(keylist, action);
- nact = parse_find_node("action", nact->next);
+ n = parse_find_node("action", n->next);
}
}
+
+ if (is_chroot)
+ keyboard_chroot(keylist);
+
+ g_free(key);
+ keylist = g_list_delete_link(keylist, g_list_last(keylist));
}
static void parse_keyboard(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
gpointer d)
{
+ xmlNodePtr n;
+ gchar *key;
+
keyboard_unbind_all();
- parse_key(i, doc, node->children, NULL);
+ if ((n = parse_find_node("chainQuitKey", node->children))) {
+ key = parse_string(doc, n);
+ translate_key(key, &config_keyboard_reset_state,
+ &config_keyboard_reset_keycode);
+ g_free(key);
+ }
+
+ if ((n = parse_find_node("keybind", node->children)))
+ while (n) {
+ parse_key(i, doc, n, NULL);
+ n = parse_find_node("keybind", n->next);
+ }
}
/*
config_theme_keepborder = parse_bool(doc, n);
if ((n = parse_find_node("hideDisabled", node)))
config_theme_hidedisabled = parse_bool(doc, n);
+ if ((n = parse_find_node("animateIconify", node)))
+ config_animate_iconify = parse_bool(doc, n);
n = parse_find_node("font", node);
while (n) {
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;
parse_expand_tilde(c));
g_free(c);
}
- if ((n = parse_find_node("warpPointer", node)))
- config_menu_warppointer = parse_bool(doc, n);
if ((n = parse_find_node("hideDelay", node)))
config_menu_hide_delay = parse_int(doc, n);
if ((n = parse_find_node("middle", node)))
config_menu_middle = parse_bool(doc, n);
if ((n = parse_find_node("submenuShowDelay", node)))
config_submenu_show_delay = parse_int(doc, n);
- if ((n = parse_find_node("desktopMenuIcons", node)))
+ if ((n = parse_find_node("applicationIcons", node)))
config_menu_client_list_icons = parse_bool(doc, n);
}
}
config_theme = NULL;
+ config_animate_iconify = TRUE;
config_title_layout = g_strdup("NLIMC");
config_theme_keepborder = TRUE;
config_theme_hidedisabled = FALSE;