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.
This commit is contained in:
Otto Moerbeek 2007-08-23 21:59:25 +02:00 committed by Matthieu Herrb
parent ff089e6cae
commit 12d27cf33c

View File

@ -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;