SwapAxes should rescale raw values when enabled

Current implementation assumes that X & Y axes have the same min and max
values. If they don't, you'll end up with funny behaviour if SwapAxes is
turned on.

Signed-off-by: Tim Yamin <plasm@roo.me.uk>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
master
Tim Yamin 16 years ago committed by Peter Hutterer
parent 009d442aa3
commit b83515485b
  1. 12
      src/evdev.c

@ -419,8 +419,16 @@ EvdevProcessValuators(InputInfoPtr pInfo, int v[MAX_VALUATORS], int *num_v,
if (pEvdev->swap_axes) {
int tmp = v[0];
v[0] = v[1];
v[1] = tmp;
v[0] = xf86ScaleAxis(v[1],
pEvdev->absinfo[ABS_X].maximum,
pEvdev->absinfo[ABS_X].minimum,
pEvdev->absinfo[ABS_Y].maximum,
pEvdev->absinfo[ABS_Y].minimum);
v[1] = xf86ScaleAxis(tmp,
pEvdev->absinfo[ABS_Y].maximum,
pEvdev->absinfo[ABS_Y].minimum,
pEvdev->absinfo[ABS_X].maximum,
pEvdev->absinfo[ABS_X].minimum);
}
if (pEvdev->flags & EVDEV_CALIBRATED)

Loading…
Cancel
Save