From bbe983923db5619c768cd6fefc713412ef16642c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Wed, 1 Aug 2012 00:20:21 -0400 Subject: [PATCH] shell: Make it possible to move and raise unresponsive surfaces --- src/shell.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/shell.c b/src/shell.c index bec53970..545689c4 100644 --- a/src/shell.c +++ b/src/shell.c @@ -993,9 +993,21 @@ busy_cursor_grab_motion(struct wl_pointer_grab *grab, } static void -busy_cursor_grab_button(struct wl_pointer_grab *grab, +busy_cursor_grab_button(struct wl_pointer_grab *base, uint32_t time, uint32_t button, uint32_t state) { + struct shell_grab *grab = (struct shell_grab *) base; + struct shell_surface *shsurf; + struct weston_surface *surface = + (struct weston_surface *) grab->grab.pointer->current; + struct weston_seat *seat = + (struct weston_seat *) grab->grab.pointer->seat; + + shsurf = get_shell_surface(surface); + if (shsurf && button == BTN_LEFT && state) { + activate(shsurf->shell, shsurf->surface, seat); + surface_move(shsurf, seat); + } } static const struct wl_pointer_grab_interface busy_cursor_grab_interface = {