diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index 7723ba683..dba3370f3 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -86,6 +86,7 @@ #include "windowstr.h" /* screenIsSaved */ #include +#include /* for int64_t */ #include @@ -1177,12 +1178,11 @@ xf86ScaleAxis(int Cx, int Rxlow ) { int X; - int dSx = Sxhigh - Sxlow; - int dRx = Rxhigh - Rxlow; + int64_t dSx = Sxhigh - Sxlow; + int64_t dRx = Rxhigh - Rxlow; - dSx = Sxhigh - Sxlow; if (dRx) { - X = ((dSx * (Cx - Rxlow)) / dRx) + Sxlow; + X = (int)(((dSx * (Cx - Rxlow)) / dRx) + Sxlow); } else { X = 0;