From 12d27cf33c6d963eae77795c0d247175907162a5 Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Thu, 23 Aug 2007 21:59:25 +0200 Subject: [PATCH] A high resolution device that's moving fast can potentially generate an int overflow, making dx*dx+dy*dy negative. Now pow(negative, non-integer) yields NaN, so you loose. Use fp math to avoid that. --- dix/getevents.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dix/getevents.c b/dix/getevents.c index 2a10038bc..52b74bd30 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -250,7 +250,7 @@ acceleratePointer(DeviceIntPtr pDev, int first_valuator, int num_valuators, } } else { - mult = pow((float)(dx * dx + dy * dy), + mult = pow((float)((float)dx * (float)dx + (float)dy * (float)dy), ((float)(pDev->ptrfeed->ctrl.num) / (float)(pDev->ptrfeed->ctrl.den) - 1.0) / 2.0) / 2.0;