dix: button state must show the logical buttons, not physical buttons
If the device is mapped 3 2 1, a click on physical button 1 sends a button 3 press, but the state was set for button 1. Fix this, the state must be set for that button's logical mapping. https://bugzilla.gnome.org/show_bug.cgi?id=655928 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
This commit is contained in:
parent
8a32c39c00
commit
76c11e0872
|
@ -674,7 +674,7 @@ void event_set_state(DeviceIntPtr mouse, DeviceIntPtr kbd, DeviceEvent *event)
|
|||
|
||||
for (i = 0; mouse && mouse->button && i < mouse->button->numButtons; i++)
|
||||
if (BitIsOn(mouse->button->down, i))
|
||||
SetBit(event->buttons, i);
|
||||
SetBit(event->buttons, mouse->button->map[i]);
|
||||
|
||||
if (mouse && mouse->touch && mouse->touch->buttonsDown > 0)
|
||||
SetBit(event->buttons, mouse->button->map[1]);
|
||||
|
|
Loading…
Reference in New Issue
Block a user