aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-07-24 20:16:54 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-07-24 20:20:00 +1000
commite7c10f1871ba64c234ff1df22828ca84ad28c67e (patch)
tree0ad866d4449bb374eedd624aaacdd8bebba0e4d6
parentMerge pull request #2303 from frsfnrrg/mouse-bindings (diff)
downloadsway-e7c10f1871ba64c234ff1df22828ca84ad28c67e.tar.gz
sway-e7c10f1871ba64c234ff1df22828ca84ad28c67e.tar.zst
sway-e7c10f1871ba64c234ff1df22828ca84ad28c67e.zip
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.
-rw-r--r--sway/input/cursor.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index f1481936..8a6299cf 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -460,6 +460,12 @@ static void dispatch_cursor_button_floating(struct sway_cursor *cursor,
460 bool resizing_via_mod = button == BTN_RIGHT && mod_pressed; 460 bool resizing_via_mod = button == BTN_RIGHT && mod_pressed;
461 if ((resizing_via_border || resizing_via_mod) && 461 if ((resizing_via_border || resizing_via_mod) &&
462 state == WLR_BUTTON_PRESSED) { 462 state == WLR_BUTTON_PRESSED) {
463 if (edge == WLR_EDGE_NONE) {
464 edge |= cursor->cursor->x > cont->x + cont->width / 2 ?
465 WLR_EDGE_RIGHT : WLR_EDGE_LEFT;
466 edge |= cursor->cursor->y > cont->y + cont->height / 2 ?
467 WLR_EDGE_BOTTOM : WLR_EDGE_TOP;
468 }
463 seat_begin_resize(seat, cont, button, edge); 469 seat_begin_resize(seat, cont, button, edge);
464 return; 470 return;
465 } 471 }