xf86-input-evdev: Changes to 'master'
Peter Hutterer
whot at kemper.freedesktop.org
Wed Aug 5 21:07:30 PDT 2009
src/evdev.c | 97 +++++++++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 77 insertions(+), 20 deletions(-)
New commits:
commit f352598e45be86f9e24d9dba88c657f03f3b168e
Author: Michael Witten <mfwitten at gmail.com>
Date: Tue Aug 4 03:11:49 2009 -0500
evdev.c: Fix/improve discrimination of rel/abs axes
The relevant comment from evdev.c:
We don't allow relative and absolute axes on the same device. The
reason is that some devices (MS Optical Desktop 2000) register both
rel and abs axes for x/y.
The abs axes register min/max; this min/max then also applies to the
relative device (the mouse) and caps it at 0..255 for both axes.
So, unless you have a small screen, you won't be enjoying it much;
consequently, absolute axes are generally ignored.
However, currenly only a device with absolute axes can be registered
as a touch{pad,screen}. Thus, given such a device, absolute axes are
used and relative axes are ignored.
The code for initializing abs/rel axes has been abstracted out into
3 functions, so that initialization in EvdevInit(device) is as easy
as:
if (pEvdev->flags & (EVDEV_TOUCHPAD | EVDEV_TOUCHSCREEN))
EvdevInitTouchDevice(device, pEvdev);
else if (pEvdev->flags & EVDEV_RELATIVE_EVENTS)
EvdevInitRelClass(device, pEvdev);
else if (pEvdev->flags & EVDEV_ABSOLUTE_EVENTS)
EvdevInitAbsClass(device, pEvdev);
Signed-off-by: Michael Witten <mfwitten at gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
More information about the xorg-commit
mailing list