From 2e03a61262746b882e82033914afae950a9fa2b2 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Sat, 10 Jul 2021 14:02:20 +0200 Subject: Fix wl_pointer.frame not sent on touch emulation When emulating touch, the simulating_pointer_from_touch field is set to true. It's switched back to false when a touch_up event is received. However we need to ensure we always send a wl_pointer.frame event following a group of other wl_pointer events. Since a touch_frame event is always guaranteed to come after a group of touch events, unset simulating_pointer_from_touch in the touch_frame handler instead of the touch_up handler. Add a new field to know whether the touch_frame handler should stop emulation. --- include/sway/input/cursor.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/sway/input/cursor.h b/include/sway/input/cursor.h index b053b85f..7d66e699 100644 --- a/include/sway/input/cursor.h +++ b/include/sway/input/cursor.h @@ -54,6 +54,7 @@ struct sway_cursor { struct wl_listener touch_motion; struct wl_listener touch_frame; bool simulating_pointer_from_touch; + bool pointer_touch_up; int32_t pointer_touch_id; struct wl_listener tool_axis; -- cgit v1.2.3-54-g00ecf