Re: [PATCH 0/1] Do not map BTN_RIGHT/MIDDLE on buttonpads
From: Peter Hutterer <hidden>
Date: 2021-12-01 05:56:51
Also in:
lkml
On Wed, Nov 24, 2021 at 10:39:02AM +0100, Benjamin Tissoires wrote:
Hi José, On Tue, Nov 23, 2021 at 8:12 PM José Expósito [off-list ref] wrote:quoted
Hi all, Historically, libinput has relayed on the INPUT_PROP_BUTTONPAD property to detect buttonpads. Since buttonpads are expected to have only one button (BTN_LEFT), recently we added a new rule to detect buttonpads: Where a touchpad maps the BTN_RIGHT bit, libinput assumes it is NOT a buttonpad. However, this change leaded to several false possitives, so we ended up reverting it. For more context: https://gitlab.freedesktop.org/libinput/libinput/-/issues/704 And for a full list of affected hardware, HID reports and bug reports please see: https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/726 My understanding is that buttonpads should not map BTN_RIGHT and/or BTN_MIDDLE and to avoid it I would like to fix the required drivers.As long as udev intrinsic is happy with it (and it correctly tags the touchpad as ID_INPUT_something), I'm fine with it.
fwiw, udev's builtin input-id touchpad check is ABS_X && ABS_Y && BTN_TOOL_FINGER && !BTN_TOOL_PEN && !INPUT_PROP_DIRECT it doesn't care about the actual buttons so this patch wouldn't affect it.
Also, you might want to point at the specification regarding button pads: https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/touchpad-windows-precision-touchpad-collection#device-capabilities-feature-report The way I read it: if the device exports the Button type value feature, and it is 0 or 1 (click-pad or pressure-pad), there should not be discrete buttons.
Yeah, it sounds like there *should* not be any buttons but There is nothing to explicitly forbid extra buttons for click/pressurepads which is probably how those devices get past the windows driver implementation. Cheers, Peter