From 77ae771476f663252f1751e0baf097f899942566 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Mon, 5 Sep 2011 22:36:04 +0200 Subject: [PATCH] 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. --- src/cmdparse.y | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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); -- 2.39.5