summaryrefslogtreecommitdiff
path: root/Xi
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2012-05-01 10:21:11 -0700
committerPeter Hutterer <peter.hutterer@who-t.net>2012-05-02 09:37:51 +1000
commit1e7b500a8e1d79b91a4e857a2da06194efe8cf69 (patch)
tree3422bd6606f90f4f4c34f4e34f776671153a8247 /Xi
parentf3410b97cf9b48a47bee3d15d232f8a88e75f4ef (diff)
Report logical button state in ProcXIQueryPointer
Physical button state is usually meaningless to an X client. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'Xi')
-rw-r--r--Xi/xiquerypointer.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/Xi/xiquerypointer.c b/Xi/xiquerypointer.c
index a2e7442e0..ba99752ef 100644
--- a/Xi/xiquerypointer.c
+++ b/Xi/xiquerypointer.c
@@ -132,7 +132,7 @@ ProcXIQueryPointer(ClientPtr client)
}
if (pDev->button) {
- int i, down;
+ int i;
rep.buttons_len =
bytes_to_int32(bits_to_bytes(pDev->button->numButtons));
@@ -142,14 +142,9 @@ ProcXIQueryPointer(ClientPtr client)
if (!buttons)
return BadAlloc;
- down = pDev->button->buttonsDown;
-
- for (i = 0; i < pDev->button->numButtons && down; i++) {
- if (BitIsOn(pDev->button->down, i)) {
- SetBit(buttons, i);
- down--;
- }
- }
+ for (i = 1; i < pDev->button->numButtons; i++)
+ if (BitIsOn(pDev->button->down, i))
+ SetBit(buttons, pDev->button->map[i]);
}
else
rep.buttons_len = 0;