Swap axes after scaling, not before.

If we swap before scaling, we scale with the wrong coordinate range.

Reported by Matt Helsley.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
master
Peter Hutterer 17 years ago
parent df7ff12ed2
commit 978384ede7
  1. 12
      src/evdev.c

@ -490,12 +490,6 @@ EvdevReadInput(InputInfoPtr pInfo)
int v[MAX_VALUATORS];
memcpy(v, pEvdev->vals, sizeof(int) * pEvdev->num_vals);
if (pEvdev->swap_axes) {
int tmp = v[0];
v[0] = v[1];
v[1] = tmp;
}
if (pEvdev->flags & EVDEV_CALIBRATED)
{
v[0] = xf86ScaleAxis(v[0],
@ -508,6 +502,12 @@ EvdevReadInput(InputInfoPtr pInfo)
pEvdev->calibration.max_y, pEvdev->calibration.min_y);
}
if (pEvdev->swap_axes) {
int tmp = v[0];
v[0] = v[1];
v[1] = tmp;
}
if (pEvdev->invert_x)
v[0] = (pEvdev->absinfo[ABS_X].maximum - v[0] +
pEvdev->absinfo[ABS_X].minimum);

Loading…
Cancel
Save