[E-devel] Multi-touch callbacks?

David Grubb <[email protected]>
Newsgroups gmane.comp.window-managers.enlightenment.devel
Message-ID <CA+1T4FQ-ajnO4OL+K5tWiYp7=SATweDp=cz7Uf0nJDAS5PC2+g@mail.gmail.com>
I've been using EFL to build applications for a few years now and have been
very pleased with the results the libraries enable. I have a new
requirement to implement pinch-and-zoom so I need to start exploring
multitouch but I'm running into a few issues getting it working.

I'm testing on my laptop which has a multitouch monitor and can confirm
that the driver is emitting the correct kernel MT protocol events via
evtest. For example, performing a small two finger drag I see two points
reported and updated before release:


Event: time 1630799195.877440, type 3 (EV_ABS), code 47 (ABS_MT_SLOT),
value 0
Event: time 1630799195.877440, type 3 (EV_ABS), code 57
(ABS_MT_TRACKING_ID), value 2
Event: time 1630799195.877440, type 3 (EV_ABS), code 53
(ABS_MT_POSITION_X), value 6621
Event: time 1630799195.877440, type 3 (EV_ABS), code 54
(ABS_MT_POSITION_Y), value 3292
Event: time 1630799195.877440, type 1 (EV_KEY), code 330 (BTN_TOUCH), value
1
Event: time 1630799195.877440, type 3 (EV_ABS), code 0 (ABS_X), value 6621
Event: time 1630799195.877440, type 3 (EV_ABS), code 1 (ABS_Y), value 3292
Event: time 1630799195.877440, -------------- SYN_REPORT ------------
Event: time 1630799195.885821, type 3 (EV_ABS), code 47 (ABS_MT_SLOT),
value 1
Event: time 1630799195.885821, type 3 (EV_ABS), code 57
(ABS_MT_TRACKING_ID), value 3
Event: time 1630799195.885821, type 3 (EV_ABS), code 53
(ABS_MT_POSITION_X), value 5302
Event: time 1630799195.885821, type 3 (EV_ABS), code 54
(ABS_MT_POSITION_Y), value 3490
Event: time 1630799195.885821, -------------- SYN_REPORT ------------
Event: time 1630799195.943159, type 3 (EV_ABS), code 57
(ABS_MT_TRACKING_ID), value -1
Event: time 1630799195.943159, -------------- SYN_REPORT ------------
Event: time 1630799195.961918, type 3 (EV_ABS), code 47 (ABS_MT_SLOT),
value 0
Event: time 1630799195.961918, type 3 (EV_ABS), code 57
(ABS_MT_TRACKING_ID), value -1
Event: time 1630799195.961918, type 1 (EV_KEY), code 330 (BTN_TOUCH), value
0

Next, I compiled EFL with the flags: disable-tslib, enable-xinput22, and
enable-always-build-examples. I made a few logging additions to the
 evas_multi_touch example so it'd print on MULTI_x callbacks, but I'm only
seeing MOUSE_x callbacks. My understanding is that the first touch point
would be reported as a MOUSE_DOWN/MOUSE_MOVE, and the second concurrent
point would be reported as a MULTI_x. Is this correct, and am I missing
something? I'm fairly confident that the driver itself is doing the correct
thing, but I'm a bit unsure about the interaction between EFL and X (N.B.,
the context is an OpenGL X window).

If anybody has any suggestions or a direction they can point me from here
I'd be very grateful.

Cheers,
Dave.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.