summaryrefslogtreecommitdiffstats
path: root/sway/input/cursor.c
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 /sway/input/cursor.c
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.
Diffstat (limited to 'sway/input/cursor.c')
-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 }