typedef enum {
LAST,
+ CURRENT,
RELATIVE,
ABSOLUTE
} SwitchType;
gchar *s = obt_xml_node_string(n);
if (!g_ascii_strcasecmp(s, "last"))
o->type = LAST;
+ else if (!g_ascii_strcasecmp(s, "current"))
+ o->type = CURRENT;
else if (!g_ascii_strcasecmp(s, "next")) {
o->type = RELATIVE;
o->u.rel.linear = TRUE;
case LAST:
d = screen_last_desktop;
break;
+ case CURRENT:
+ d = screen_desktop;
+ break;
case ABSOLUTE:
d = o->u.abs.desktop;
break;
g_assert_not_reached();
}
- if (d < screen_num_desktops && d != screen_desktop) {
+ if (d < screen_num_desktops &&
+ (d != screen_desktop ||
+ (data->client && data->client->desktop != screen_desktop))) {
gboolean go = TRUE;
actions_client_move(data, TRUE);