diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2011-12-16 12:41:08 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2011-12-21 14:16:36 +1000 |
commit | 76c11e0872dedcd360cbe02cf62bb9de3b212957 (patch) | |
tree | b2efd3a04a08e527bd0b6debdcb8539eeb219004 | |
parent | 8a32c39c00789c16006de61112627722ce548be1 (diff) |
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>
-rw-r--r-- | dix/inpututils.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/dix/inpututils.c b/dix/inpututils.c index 50a122f2f..d279c1d75 100644 --- a/dix/inpututils.c +++ b/dix/inpututils.c @@ -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]); |