Update compositor initiated resize to use a 3x3 grid
This lets us do all combinations of resize edges.
This commit is contained in:
parent
5a2218aa15
commit
181f52ea96
@ -773,6 +773,7 @@ notify_button(struct wl_input_device *device,
|
|||||||
|
|
||||||
surface = (struct wlsc_surface *) device->pointer_focus;
|
surface = (struct wlsc_surface *) device->pointer_focus;
|
||||||
uint32_t edges = 0;
|
uint32_t edges = 0;
|
||||||
|
int32_t x, y;
|
||||||
|
|
||||||
if (state && surface && device->grab == NULL) {
|
if (state && surface && device->grab == NULL) {
|
||||||
wlsc_surface_raise(surface);
|
wlsc_surface_raise(surface);
|
||||||
@ -797,13 +798,20 @@ notify_button(struct wl_input_device *device,
|
|||||||
else if (state && surface && button == BTN_MIDDLE &&
|
else if (state && surface && button == BTN_MIDDLE &&
|
||||||
(wd->modifier_state & MODIFIER_SUPER)) {
|
(wd->modifier_state & MODIFIER_SUPER)) {
|
||||||
|
|
||||||
if ((device->grab_x - surface->x) < surface->width / 2)
|
x = device->grab_x - surface->x;
|
||||||
|
y = device->grab_y - surface->y;
|
||||||
|
|
||||||
|
if (x < surface->width / 3)
|
||||||
edges |= WL_SHELL_RESIZE_LEFT;
|
edges |= WL_SHELL_RESIZE_LEFT;
|
||||||
|
else if (x < 2 * surface->width / 3)
|
||||||
|
edges |= 0;
|
||||||
else
|
else
|
||||||
edges |= WL_SHELL_RESIZE_RIGHT;
|
edges |= WL_SHELL_RESIZE_RIGHT;
|
||||||
|
|
||||||
if ((device->grab_y - surface->y) < surface->height / 2)
|
if (y < surface->height / 3)
|
||||||
edges |= WL_SHELL_RESIZE_TOP;
|
edges |= WL_SHELL_RESIZE_TOP;
|
||||||
|
else if (y < 2 * surface->height / 3)
|
||||||
|
edges |= 0;
|
||||||
else
|
else
|
||||||
edges |= WL_SHELL_RESIZE_BOTTOM;
|
edges |= WL_SHELL_RESIZE_BOTTOM;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user