Input: Fix frac calculation on [Raw]DeviceEvent conversion
(1UL << 32) evaluates to 0 (at least here), so do the fraction calculation in two steps as in libXi. Fractions on xXIRawEvent were not multiplied at all, which also gave 0 as result. Signed-off-by: Max Schwarz <Max@x-quadraht.de> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
4c6bc0e765
commit
f32c827d51
|
@ -635,7 +635,7 @@ eventToDeviceEvent(DeviceEvent *ev, xEvent **xi)
|
|||
SetBit(ptr, i);
|
||||
axisval->integral = trunc(ev->valuators.data[i]);
|
||||
axisval->frac = (ev->valuators.data[i] - axisval->integral) *
|
||||
(1UL << 32);
|
||||
(1 << 16) * (1 << 16);
|
||||
axisval++;
|
||||
}
|
||||
}
|
||||
|
@ -679,10 +679,12 @@ eventToRawEvent(RawDeviceEvent *ev, xEvent **xi)
|
|||
{
|
||||
SetBit(ptr, i);
|
||||
axisval->integral = trunc(ev->valuators.data[i]);
|
||||
axisval->frac = ev->valuators.data[i] - axisval->integral;
|
||||
axisval->frac = (ev->valuators.data[i] - axisval->integral) *
|
||||
(1 << 16) * (1 << 16);
|
||||
axisval_raw->integral = trunc(ev->valuators.data_raw[i]);
|
||||
axisval_raw->frac = ev->valuators.data_raw[i] -
|
||||
axisval_raw->integral;
|
||||
axisval_raw->frac =
|
||||
(ev->valuators.data_raw[i] - axisval_raw->integral) *
|
||||
(1 << 16) * (1 << 16);
|
||||
axisval++;
|
||||
axisval_raw++;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user