exposay: provide a cancel func to the ptr grab iface
Fixes a crash when cancel is called while exposay is in progress.
diff --git a/src/shell.c b/src/shell.c
index f102e9a..6ba1f10 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -5275,10 +5275,20 @@
shell->exposay.clicked = NULL;
}
+static void
+exposay_pointer_grab_cancel(struct weston_pointer_grab *grab)
+{
+ struct desktop_shell *shell =
+ container_of(grab, struct desktop_shell, exposay.grab_ptr);
+
+ exposay_set_state(shell, EXPOSAY_TARGET_CANCEL, shell->exposay.seat);
+}
+
static const struct weston_pointer_grab_interface exposay_ptr_grab = {
noop_grab_focus,
exposay_motion,
exposay_button,
+ exposay_pointer_grab_cancel,
};
static int