This applies to resizes initiated by the compositor. --- compositor/compositor.c | 18 +++++++++++++++--- 1 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/compositor/compositor.c b/compositor/compositor.c index 9d7c330..365344a 100644 --- a/compositor/compositor.c +++ b/compositor/compositor.c @@ -772,6 +772,7 @@ notify_button(struct wl_input_device *device, (struct wlsc_compositor *) device->compositor; surface = (struct wlsc_surface *) device->pointer_focus; + uint32_t edges = 0; if (state && surface && device->grab == NULL) { wlsc_surface_raise(surface); @@ -794,11 +795,22 @@ notify_button(struct wl_input_device *device, (struct wl_shell *) &compositor->shell, &surface->surface, device, time); 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) + edges |= WL_SHELL_RESIZE_LEFT; + else + edges |= WL_SHELL_RESIZE_RIGHT; + + if ((device->grab_y - surface->y) < surface->height / 2) + edges |= WL_SHELL_RESIZE_TOP; + else + edges |= WL_SHELL_RESIZE_BOTTOM; + shell_resize(NULL, (struct wl_shell *) &compositor->shell, - &surface->surface, device, time, - WL_SHELL_RESIZE_BOTTOM_RIGHT); + &surface->surface, device, time, edges); + } if (device->grab) device->grab->interface->button(device->grab, time, -- 1.7.3.4 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel