+ /* don't go anywhere if theres no options given */
+ o->type = ABSOLUTE;
+ o->abs.desktop = screen_desktop;
+ /* wrap by default - it's handy! */
+ o->rel.wrap = TRUE;
+
+ if ((n = parse_find_node("to", node))) {
+ gchar *s = parse_string(doc, n);
+ if (!g_ascii_strcasecmp(s, "last"))
+ o->type = LAST;
+ else if (!g_ascii_strcasecmp(s, "next")) {
+ o->type = RELATIVE;
+ o->rel.linear = TRUE;
+ o->rel.dir = OB_DIRECTION_EAST;
+ }
+ else if (!g_ascii_strcasecmp(s, "previous")) {
+ o->type = RELATIVE;
+ o->rel.linear = TRUE;
+ o->rel.dir = OB_DIRECTION_WEST;
+ }
+ else if (!g_ascii_strcasecmp(s, "north") ||
+ !g_ascii_strcasecmp(s, "up")) {
+ o->type = RELATIVE;
+ o->rel.dir = OB_DIRECTION_NORTH;
+ }
+ else if (!g_ascii_strcasecmp(s, "south") ||
+ !g_ascii_strcasecmp(s, "down")) {
+ o->type = RELATIVE;
+ o->rel.dir = OB_DIRECTION_SOUTH;
+ }
+ else if (!g_ascii_strcasecmp(s, "west") ||
+ !g_ascii_strcasecmp(s, "left")) {
+ o->type = RELATIVE;
+ o->rel.dir = OB_DIRECTION_WEST;
+ }
+ else if (!g_ascii_strcasecmp(s, "east") ||
+ !g_ascii_strcasecmp(s, "right")) {
+ o->type = RELATIVE;
+ o->rel.dir = OB_DIRECTION_EAST;
+ }
+ else {
+ o->type = ABSOLUTE;
+ o->abs.desktop = parse_int(doc, n) - 1;
+ }
+ g_free(s);
+ }
+
+ if ((n = parse_find_node("wrap", node)))
+ o->rel.wrap = parse_bool(doc, n);