devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2af4858e2aad8cffac7248398786d37df1a29845
commit 2af4858e2aad8cffac7248398786d37df1a29845 Author: Chris Michael <[email protected]> Date: Tue Jan 17 11:34:24 2017 -0500 elput: Return touch coordinates when we have no pointer If a user calls elput_input_pointer_xy_get (as is done via ecore_evas_drm) and a pointer does not exist, we never return any coordinates for this function. Enlightenment is using ecore_evas_pointer_xy_get (which when using the drm ee, ends up calling elput_input_pointer_xy_get). If we have no pointer device, then no coordinates are ever returned and touch clicking does not function properly. To fix that we will check if a touch device exists and supply the coordinates from that (in the case where there is no pointer device). @fix Signed-off-by: Chris Michael <[email protected]> --- src/lib/elput/elput_input.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/lib/elput/elput_input.c b/src/lib/elput/elput_input.c index 1dde85a..706e4f7 100644 --- a/src/lib/elput/elput_input.c +++ b/src/lib/elput/elput_input.c @@ -425,6 +425,16 @@ elput_input_pointer_xy_get(Elput_Manager *manager, const char *seat, int *x, int continue; if (x) *x = eseat->ptr->x; if (y) *y = eseat->ptr->y; + return; + } + + EINA_LIST_FOREACH(manager->input.seats, l, eseat) + { + if (!eseat->touch) continue; + if ((eseat->name) && (strcmp(eseat->name, seat))) + continue; + if (x) *x = eseat->touch->x; + if (y) *y = eseat->touch->y; break; } } --
