From ebe3ddaf284ad388835da9cbaa6ad61fa21ce6dd Mon Sep 17 00:00:00 2001 From: Simon Thum Date: Fri, 19 Nov 2010 11:09:21 +1000 Subject: [PATCH] dix: fix up valuators passed to acceleration code. Signed-off-by: Peter Hutterer Reviewed-by: Simon Thum Reviewed-by: Chase Douglas --- dix/getevents.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dix/getevents.c b/dix/getevents.c index a288e36d7..06a0da014 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -1159,11 +1159,16 @@ GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons, * should be converted to masked valuators. */ int vals[2]; vals[0] = valuator_mask_isset(&mask, 0) ? - valuator_mask_get(&mask, 0) : pDev->last.valuators[0]; + valuator_mask_get(&mask, 0) : 0; vals[1] = valuator_mask_isset(&mask, 1) ? - valuator_mask_get(&mask, 1) : pDev->last.valuators[1]; + valuator_mask_get(&mask, 1) : 0; accelPointer(pDev, 0, 2, vals, ms); + if (valuator_mask_isset(&mask, 0)) + valuator_mask_set(&mask, 0, vals[0]); + if (valuator_mask_isset(&mask, 1)) + valuator_mask_set(&mask, 1, vals[1]); + /* The pointer acceleration code modifies the fractional part * in-place, so we need to extract this information first */ x_frac = pDev->last.remainder[0];