- if ((n = parse_find_node("monitor", node)))
- o->monitor = parse_int(doc, n) - 1;
+ if ((n = parse_find_node("monitor", node))) {
+ gchar *s = parse_string(doc, 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 = parse_int(doc, n) - 1;
+ }
+ g_free(s);
+ }