Thread (6 messages) 6 messages, 4 authors, 2021-12-01

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help