• Hans de Goede's avatar
    HID: multitouch: Combine all left-button events in a frame · 127e71bd
    Hans de Goede authored
    According to the Win8 Precision Touchpad spec, inside the HID_UP_BUTTON
    usage-page usage 1 is for a clickpad getting clicked, 2 for an external
    left button and 3 for an external right button. Since Linux uses
    BTN_LEFT for a clickpad being clicked we end up mapping both usage 1
    and 2 to BTN_LEFT and if a single report contains both then we ended
    up always reporting the value of both in a single SYN, e.g. :
    BTN_LEFT 1, BTN_LEFT 0, SYN. This happens for example with Hantick
    HTT5288 i2c mt touchpads.
    
    This commit fixes this by not immediately reporting left button when we
    parse the report, but instead storing or-ing together the values and
    reporting the result from mt_sync_frame() when we've a complete frame.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    127e71bd
hid-multitouch.c 53.3 KB