- if ((n = parse_find_node("monitor", node)))
- o->monitor = parse_int(doc, n) - 1;
+ obt_xml_attr_bool(n, "client", &o->w_sets_client_size);
+ }
+ if ((n = obt_xml_find_node(node, "height"))) {
+ gchar *s = obt_xml_node_string(n);
+ if (g_ascii_strcasecmp(s, "current") != 0)
+ config_parse_relative_number(s, &o->h, &o->h_denom);
+ g_free(s);
+
+ obt_xml_attr_bool(n, "client", &o->h_sets_client_size);
+ }
+
+ if ((n = obt_xml_find_node(node, "monitor"))) {
+ gchar *s = obt_xml_node_string(n);
+ if (g_ascii_strcasecmp(s, "current") != 0) {
+ if (!g_ascii_strcasecmp(s, "all"))
+ o->monitor = ALL_MONITORS;
+ else if(!g_ascii_strcasecmp(s, "next"))
+ o->monitor = NEXT_MONITOR;
+ else if(!g_ascii_strcasecmp(s, "prev"))
+ o->monitor = PREV_MONITOR;
+ else
+ o->monitor = obt_xml_node_int(n) - 1;
+ }
+ g_free(s);
+ }