shell: Make it possible to move and raise unresponsive surfaces
diff --git a/src/shell.c b/src/shell.c
index bec5397..545689c 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -993,9 +993,21 @@
}
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 = {