- if (d < screen_num_desktops)
- screen_set_desktop(d, TRUE);
-
+ if (d < screen_num_desktops && d != screen_desktop) {
+ gboolean go = !o->send;
+ if (o->send) {
+ if (data->client && client_normal(data->client)) {
+ client_set_desktop(data->client, d, o->follow, FALSE);
+ go = TRUE;
+ }
+ }
+ if (go)
+ screen_set_desktop(d, TRUE);
+ }