diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-12-18 13:57:07 +1030 |
---|---|---|
committer | Daniel Stone <daniel@fooishbar.org> | 2008-01-29 14:46:30 +1100 |
commit | e98027c3ac7195fec665ef393d980b02870ca1b8 (patch) | |
tree | 6b7b0ca88afefae2ed2b2e9a18f81d667c8098e3 | |
parent | b6d4cdf64f43ae805beada6122c8be2ed138742c (diff) |
dix: set the correct number of valuators in valuator events.
(first_valuator + num_valuators) must never be larger than the number of axes,
otherwise DIX freaks out. And from looking at libXI, anything larger than 6 is
wrong too.
(cherry picked from commit 9f6ae61ad12cc2813d04405458e1ca5aed8a539e)
-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 12d8189f3..b7ba69bf7 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -344,7 +344,7 @@ getValuatorEvents(xEvent *events, DeviceIntPtr pDev, int first_valuator, for (i = first_valuator; i < final_valuator; i += 6, xv++, events++) { xv->type = DeviceValuator; xv->first_valuator = i; - xv->num_valuators = num_valuators; + xv->num_valuators = ((num_valuators - i) > 6) ? 6 : (num_valuators - i); xv->deviceid = pDev->id; switch (final_valuator - i) { case 6: |