Reset the touch point count in case the driver did not emit appropriate number of touch up events.
Signed-off-by: Jonas Ådahl <[email protected]> --- src/input.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/input.c b/src/input.c index 1b8dbae..34aa720 100644 --- a/src/input.c +++ b/src/input.c @@ -517,6 +517,12 @@ weston_keyboard_destroy(struct weston_keyboard *keyboard) free(keyboard); } +static void +weston_touch_reset_state(struct weston_touch *touch) +{ + touch->num_tp = 0; +} + WL_EXPORT struct weston_touch * weston_touch_create(void) { @@ -2041,6 +2047,7 @@ weston_seat_release_touch(struct weston_seat *seat) if (seat->touch_device_count == 0) { weston_touch_set_focus(seat, NULL); weston_touch_cancel_grab(seat->touch); + weston_touch_reset_state(seat->touch); seat_send_updated_caps(seat); } } -- 1.8.1.2 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
