commit e7c10f1871ba64c234ff1df22828ca84ad28c67e
parent 1a9179dbab91490c4a8dc45f8630ac139c96efe6
Author: Ryan Dwyer <ryandwyer1@gmail.com>
Date: Tue, 24 Jul 2018 20:16:54 +1000
Make mod+resize work in any direction
This makes it so if you hold mod and right click on a surface to resize
it, the resize direction is chosen based on which quarter of the surface
you've clicked. The previous implementation only resized towards the
bottom right.
Diffstat:
1 file changed, 6 insertions(+), 0 deletions(-)
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
@@ -460,6 +460,12 @@ static void dispatch_cursor_button_floating(struct sway_cursor *cursor,
bool resizing_via_mod = button == BTN_RIGHT && mod_pressed;
if ((resizing_via_border || resizing_via_mod) &&
state == WLR_BUTTON_PRESSED) {
+ if (edge == WLR_EDGE_NONE) {
+ edge |= cursor->cursor->x > cont->x + cont->width / 2 ?
+ WLR_EDGE_RIGHT : WLR_EDGE_LEFT;
+ edge |= cursor->cursor->y > cont->y + cont->height / 2 ?
+ WLR_EDGE_BOTTOM : WLR_EDGE_TOP;
+ }
seat_begin_resize(seat, cont, button, edge);
return;
}