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>
This commit is contained in:
committed by
Peter Hutterer
parent
f3410b97cf
commit
1e7b500a8e
@@ -132,7 +132,7 @@ ProcXIQueryPointer(ClientPtr client)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (pDev->button) {
|
if (pDev->button) {
|
||||||
int i, down;
|
int i;
|
||||||
|
|
||||||
rep.buttons_len =
|
rep.buttons_len =
|
||||||
bytes_to_int32(bits_to_bytes(pDev->button->numButtons));
|
bytes_to_int32(bits_to_bytes(pDev->button->numButtons));
|
||||||
@@ -142,14 +142,9 @@ ProcXIQueryPointer(ClientPtr client)
|
|||||||
if (!buttons)
|
if (!buttons)
|
||||||
return BadAlloc;
|
return BadAlloc;
|
||||||
|
|
||||||
down = pDev->button->buttonsDown;
|
for (i = 1; i < pDev->button->numButtons; i++)
|
||||||
|
if (BitIsOn(pDev->button->down, i))
|
||||||
for (i = 0; i < pDev->button->numButtons && down; i++) {
|
SetBit(buttons, pDev->button->map[i]);
|
||||||
if (BitIsOn(pDev->button->down, i)) {
|
|
||||||
SetBit(buttons, i);
|
|
||||||
down--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rep.buttons_len = 0;
|
rep.buttons_len = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user