evdev: workaround for missing ABS_X/Y on multitouch devices (mostly Android)

Colin Macdonald macdonald at maths.ox.ac.uk
Thu Jun 26 14:47:01 PDT 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 25/06/14 02:39, Peter Hutterer wrote:
> it's doable, and with libevdev fairly simple nowadays, we'd only
> have to call libevdev_set_abs_info() and be done with it. Send a
> patch and I'll merge this.

First attempt at a patch attached.  Works for me on an Android
device but haven't yet tested on a normal bit of hardware.

I used libevdev_enable_event_code() to create ABS_X with a copy
libevdev_get_abs_info() from ABS_MT_POSITION_X (etc, following the
mt_axis_mapping table in the code).

Older applications (XFCE window manager for one) don't get drags but
perhaps this is b/c they expect actual ABS_X,Y events.

I also get some pretty ominous warnings, but I'm not sure if they
are related or not!

libevdev error in sanitize_event: BUG: Device "sec_touchscreen"
received a double tracking ID 21 in slot 1.
(EE) [dix] touchscreen: unable to find touch point 0
(EE) [dix] touchscreen: unable to find touch point 1
(EE) [dix] touchscreen: unable to find touch point 1
(EE) [dix] touchscreen: unable to find touch point 1
(EE) [dix] touchscreen: unable to find touch point 1
(EE) [dix] touchscreen: unable to find touch point 1
(EE) [dix] touchscreen: unable to find touch point 1
libevdev error in sanitize_event: BUG: Device "sec_touchscreen"
received a double tracking ID 22 in slot 0.
(EE) [dix] touchscreen: unable to find touch point 0
(EE) [dix] touchscreen: unable to find touch point 0
(EE) [dix] touchscreen: unable to find touch point 0
(EE) [dix] touchscreen: unable to find touch point 0
(EE) [dix] touchscreen: unable to find touch point 0
(EE) [dix] touchscreen: unable to find touch point 0
libevdev error in sanitize_event: BUG: Device "sec_touchscreen"
received a double tracking ID 24 in slot 3.
(EE) [dix] touchscreen: unable to find touch point 3
(EE) [dix] touchscreen: unable to find touch point 3
(EE) [dix] touchscreen: unable to find touch point 3
(EE) [dix] touchscreen: unable to find touch point 3
[dix] EventToCore: Not implemented yet
[dix] EventToCore: Not implemented yet

In case you prefer not to apply this as is, I'm working in "noabsx"
branch on https://github.com/cbm755/xf86-input-evdev/

Colin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJTrJTUAAoJEAzlCRPFMm7l2poH+wa+MbYsD60OzO+qlp49MGF2
x24Khxe/TFKH2IqiD1tWg+gvO3JQhrq58lJ1Q35l7anSQW4MB3nlw5PpVGpaJJy4
zKrdK6fIaLCS5Hj5vdst0efkERy2MgZBxoVYeOxGY8BvmMOa8opEpWswhCsWfiNa
hX2KUHNk176WNn60uy1HCuolzH2+hw0ortLXdrt5+RjjGSLoOHrvy/wYu0FIqIP5
/wYGLdNW5cixBtk3rKkY6RmgJBW6r84kMg0zJz24wKOMkV+brKFXTIwzf2EFy0Zp
g2773QFjLhRE1N0tbL8+nfjenxMv0pohZU6FeYZI/bw6q4sgRqkKoYibJ0Jp/ec=
=Sbd0
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Work-around-devices-lacking-ABS_X-bug-80470.patch
Type: text/x-patch
Size: 4964 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20140626/15b16ddf/attachment.bin>


More information about the xorg-devel mailing list