From 89142b356b3119d7b7012df075fc7698ec38e769 Mon Sep 17 00:00:00 2001 From: Chase Douglas Date: Thu, 31 Mar 2011 11:29:01 -0400 Subject: Don't report old relative values in getValuatorEvents Relative valuator values should not be reported in any future events. If a relative valuator value is not set in an internal event, set the value to 0 for XI 1.x valuator events sent over the wire. Signed-off-by: Chase Douglas Reviewed-by: Simon Thum Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer (cherry picked from commit f40103cee1d591387359f401a5a7c21f4105aeb4) --- dix/eventconvert.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dix/eventconvert.c b/dix/eventconvert.c index 78938800e..edcb9dd2f 100644 --- a/dix/eventconvert.c +++ b/dix/eventconvert.c @@ -384,8 +384,10 @@ getValuatorEvents(DeviceEvent *ev, deviceValuator *xv) for (j = 0; j < xv->num_valuators; j++) { if (BitIsOn(ev->valuators.mask, xv->first_valuator + j)) valuators[j] = ev->valuators.data[xv->first_valuator + j]; - else + else if (dev->valuator->axes[xv->first_valuator + j].mode == Absolute) valuators[j] = dev->valuator->axisVal[xv->first_valuator + j]; + else + valuators[j] = 0; } if (i + 6 < num_valuators) -- cgit v1.2.3