• Peter Hutterer's avatar
    touchpad: ignore motion speed for hovering touches · a8e3f4d1
    Peter Hutterer authored
    tp_detect_thumb_while_moving() assumes that of the 2 fingers down, at least
    one must be in TOUCH_UPDATE, otherwise we wouldn't have a speed to analyze for
    If a touch starts in HOVERING and exceeds the speed limit, we were previously
    increasing the 'exceeded count'. This later leads to an assert() in
    tp_detect_thumb_while_moving() when the second finger comes down because
    although we have multiple fingers, none of them are in TOUCH_UPDATE.
    This only happens when fingers 2 and 3 come down in the same event frame,
    because then we have nfingers_down at 2 (the hovering one doesn't count) but
    we don't yet have a finger in TOUCH_UPDATE.
    Fix this twofold, first by now calculating the speed on anything but
    TOUCH_UPDATE. And second by force-resetting the speed count on
    TOUCH_BEGIN/TOUCH_END so we definitely cover all the hover transitions.
    Fixes #150
    Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
test-touchpad.c 194 KB