From: Michael Stapelberg Date: Mon, 5 Sep 2011 20:36:04 +0000 (+0200) Subject: Restrict 'resize' command to left/right for horizontal cons, up/down for vertical... X-Git-Tag: 4.1~169^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=77ae771476f663252f1751e0baf097f899942566;p=i3%2Fi3 Restrict 'resize' command to left/right for horizontal cons, up/down for vertical cons This makes the interface much clearer and avoids confusion about which key to press in which situation. --- diff --git a/src/cmdparse.y b/src/cmdparse.y index 51e0f7bc..72ffae6a 100644 --- a/src/cmdparse.y +++ b/src/cmdparse.y @@ -857,6 +857,17 @@ resize: double percentage = 1.0 / children; LOG("default percentage = %f\n", percentage); + orientation_t orientation = current->parent->orientation; + + if ((orientation == HORIZ && + (direction == TOK_UP || direction == TOK_DOWN)) || + (orientation == VERT && + (direction == TOK_LEFT || direction == TOK_RIGHT))) { + LOG("You cannot resize in that direction. Your focus is in a %s split container currently.\n", + (orientation == HORIZ ? "horizontal" : "vertical")); + break; + } + if (direction == TOK_UP || direction == TOK_LEFT) { other = TAILQ_PREV(current, nodes_head, nodes); } else { @@ -864,7 +875,7 @@ resize: } if (other == TAILQ_END(workspaces)) { LOG("No other container in this direction found, cannot resize.\n"); - return 0; + break; } LOG("other->percent = %f\n", other->percent); LOG("current->percent before = %f\n", current->percent);