summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2011-12-16 12:41:08 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-12-21 08:12:52 +1000
commitfcda98c48610fd507ca0b89c6006a5497d9dc1c9 (patch)
tree6482a08ed74070eb2c978d541d9ca312bf4a42d8
parent47da6b6b2c2e9245422655f94770146fb8cd430b (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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/dix/inpututils.c b/dix/inpututils.c
index 8cd4d5921..e1a11a170 100644
--- a/dix/inpututils.c
+++ b/dix/inpututils.c
@@ -672,7 +672,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 (kbd && kbd->key)
{