mirror of
https://github.com/X11Libre/xf86-input-evdev.git
synced 2026-03-24 09:44:28 +00:00
Only take the driver-internal button mapping to count buttons (#23405)
Regression:
If a user has multiple buttons mapped to the same button number, the
number of buttons counted is set to a wrong value. e.g. a button
mapping of 1 1 1 for a mouse with three buttons would only initialize 1
button to the X server.
In the future, the user cannot change this button mapping as the server
only knows about one button.
The user-supplied button map (option ButtonMapping) shouldn't matter when
counting the buttons. Only the driver-internal mapping (BTN_0 -> button 1,
etc.) matters.
X.Org Bug 23405 <http://bugs.freedesktop.org/show_bug.cgi?id=23405>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 415b6ffa95)
This commit is contained in:
@@ -1544,8 +1544,7 @@ EvdevProbe(InputInfoPtr pInfo)
|
||||
int mapping = 0;
|
||||
if (TestBit(i, pEvdev->key_bitmask))
|
||||
{
|
||||
mapping =
|
||||
pEvdev->btnmap[EvdevUtilButtonEventToButtonNumber(pEvdev, i)];
|
||||
mapping = EvdevUtilButtonEventToButtonNumber(pEvdev, i);
|
||||
if (mapping > num_buttons)
|
||||
num_buttons = mapping;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user