From 181f52ea96afed2ebeaf8dc9c1fb793b7064f39e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Tue, 1 Feb 2011 20:28:32 -0500 Subject: [PATCH] Update compositor initiated resize to use a 3x3 grid This lets us do all combinations of resize edges. --- compositor/compositor.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/compositor/compositor.c b/compositor/compositor.c index 365344a9..b8591bf9 100644 --- a/compositor/compositor.c +++ b/compositor/compositor.c @@ -773,6 +773,7 @@ notify_button(struct wl_input_device *device, surface = (struct wlsc_surface *) device->pointer_focus; uint32_t edges = 0; + int32_t x, y; if (state && surface && device->grab == NULL) { wlsc_surface_raise(surface); @@ -797,13 +798,20 @@ notify_button(struct wl_input_device *device, else if (state && surface && button == BTN_MIDDLE && (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; + else if (x < 2 * surface->width / 3) + edges |= 0; else edges |= WL_SHELL_RESIZE_RIGHT; - if ((device->grab_y - surface->y) < surface->height / 2) + if (y < surface->height / 3) edges |= WL_SHELL_RESIZE_TOP; + else if (y < 2 * surface->height / 3) + edges |= 0; else edges |= WL_SHELL_RESIZE_BOTTOM;