alternate = true;
(*args)++;
}
- if (parse_client_state(*args, &cst)) {
- if (alternate && trg.node != NULL && trg.node->client != NULL &&
- trg.node->client->state == cst) {
+ if (alternate && (*args)[0] == '\0') {
+ if (trg.node != NULL && trg.node->client != NULL) {
cst = trg.node->client->last_state;
- }
- if (!set_state(trg.monitor, trg.desktop, trg.node, cst)) {
+ } else {
fail(rsp, "");
break;
}
- changed = true;
+ } else if (parse_client_state(*args, &cst)) {
+ if (alternate && trg.node != NULL && trg.node->client != NULL &&
+ trg.node->client->state == cst) {
+ cst = trg.node->client->last_state;
+ }
} else {
fail(rsp, "node %s: Invalid argument: '%s'.\n", *(args - 1), *args);
break;
}
+ if (!set_state(trg.monitor, trg.desktop, trg.node, cst)) {
+ fail(rsp, "");
+ break;
+ }
+ changed = true;
} else if (streq("-g", *args) || streq("--flag", *args)) {
num--, args++;
if (num < 1) {