diff options
author | Keith Packard <keithp@keithp.com> | 2008-06-15 10:01:28 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-06-15 11:47:24 +0930 |
commit | 8c9234a163eceda2abc0a2523e0f5587ea399935 (patch) | |
tree | 92281fefa55c7201a312a78aae37ea24385c51a9 /dix/getevents.c | |
parent | d894e86aa5bea81147c4a7ad8630bcfb04156792 (diff) |
Xi: avoid double button mapping.
Button events were mapped once in GetPointerEvents and then again in
UpdateDeviceState. While it might make sense to just fix up UpdateDeviceState,
it turns out to be better to leave the raw button number in the event because
DGA reports raw device events without button translation, and so when it calls
UpdateDeviceState, the button down counts get scrambled and buttons get stuck
down.
See also:
http://lists.freedesktop.org/archives/xorg/2008-June/036201.html
Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
Diffstat (limited to 'dix/getevents.c')
-rw-r--r-- | dix/getevents.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/dix/getevents.c b/dix/getevents.c index 5227c54ec..b00bc11ca 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -1030,7 +1030,7 @@ GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons, kbp->type = DeviceButtonPress; else if (type == ButtonRelease) kbp->type = DeviceButtonRelease; - kbp->detail = pDev->button->map[buttons]; + kbp->detail = buttons; } kbp->root_x = cx; /* root_x/y always in screen coords */ |