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.
master
Ryan Dwyer 6 years ago
parent 1a9179dbab
commit e7c10f1871

@ -460,6 +460,12 @@ static void dispatch_cursor_button_floating(struct sway_cursor *cursor,
bool resizing_via_mod = button == BTN_RIGHT && mod_pressed; bool resizing_via_mod = button == BTN_RIGHT && mod_pressed;
if ((resizing_via_border || resizing_via_mod) && if ((resizing_via_border || resizing_via_mod) &&
state == WLR_BUTTON_PRESSED) { 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); seat_begin_resize(seat, cont, button, edge);
return; return;
} }

Loading…
Cancel
Save