diff options
author | Simon Ser <contact@emersion.fr> | 2021-07-10 14:02:20 +0200 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2021-07-26 16:58:11 +0200 |
commit | 2e03a61262746b882e82033914afae950a9fa2b2 (patch) | |
tree | c7f7432dd647bc0c6f06389dd3d42d6e2a28ed7b /include | |
parent | Fix crash when starting without HOME (diff) | |
download | sway-2e03a61262746b882e82033914afae950a9fa2b2.tar.gz sway-2e03a61262746b882e82033914afae950a9fa2b2.tar.zst sway-2e03a61262746b882e82033914afae950a9fa2b2.zip |
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.
Diffstat (limited to 'include')
-rw-r--r-- | include/sway/input/cursor.h | 1 |
1 files changed, 1 insertions, 0 deletions
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 { | |||
54 | struct wl_listener touch_motion; | 54 | struct wl_listener touch_motion; |
55 | struct wl_listener touch_frame; | 55 | struct wl_listener touch_frame; |
56 | bool simulating_pointer_from_touch; | 56 | bool simulating_pointer_from_touch; |
57 | bool pointer_touch_up; | ||
57 | int32_t pointer_touch_id; | 58 | int32_t pointer_touch_id; |
58 | 59 | ||
59 | struct wl_listener tool_axis; | 60 | struct wl_listener tool_axis; |