On Fri, Apr 20, 2012 at 11:07:17AM -0700, Chase Douglas wrote: > Physical button state is usually meaningless to an X client. > > Signed-off-by: Chase Douglas <chase.doug...@canonical.com> > --- > Xi/xiquerypointer.c | 12 ++++-------- > 1 files changed, 4 insertions(+), 8 deletions(-) > > diff --git a/Xi/xiquerypointer.c b/Xi/xiquerypointer.c > index a2e7442..e2a940c 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,10 @@ 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)) { > + for (i = 0; i < pDev->button->numButtons; i++) > + /* Logical button state is stored as core protocol mask bits */ > + if (BitIsOn(&pDev->button->state, 8 + i)) > SetBit(buttons, i); > - down--; > - } > - } > } > else > rep.buttons_len = 0; > -- > 1.7.9.1
yikes. reading this makes me realise that unsigned short is not the ideal place to store logical button state... Cheers, Peter _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel