summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2020-02-20 13:20:32 -0500
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-03-03 10:54:31 +0100
commite1b70206331dae6dea027e578459a8779e20ba4c (patch)
tree47b79ba78f9c5b7ed888a66710e9006e44b7de51
parent3603884e51daf0cbb853b33a9a7fa6421bf2b7ff (diff)
downloadefl-e1b70206331dae6dea027e578459a8779e20ba4c.tar.gz
efl/gesture: correctly filter tap events based on the processing touch point
if the recognizer is processing using a touch point other than the first finger, e.g., in the case where multiple fingers are pressed simultaneously, then the recognizer needs to also detect distance based on that finger more fixes for triggering tap events while fingers are moving Differential Revision: https://phab.enlightenment.org/D11385
-rw-r--r--src/lib/evas/gesture/efl_canvas_gesture_recognizer_double_tap.c4
-rw-r--r--src/lib/evas/gesture/efl_canvas_gesture_recognizer_long_press.c4
-rw-r--r--src/lib/evas/gesture/efl_canvas_gesture_recognizer_tap.c2
-rw-r--r--src/lib/evas/gesture/efl_canvas_gesture_recognizer_triple_tap.c4
4 files changed, 7 insertions, 7 deletions
diff --git a/src/lib/evas/gesture/efl_canvas_gesture_recognizer_double_tap.c b/src/lib/evas/gesture/efl_canvas_gesture_recognizer_double_tap.c
index c7b53110e2..123dbd551e 100644
--- a/src/lib/evas/gesture/efl_canvas_gesture_recognizer_double_tap.c
+++ b/src/lib/evas/gesture/efl_canvas_gesture_recognizer_double_tap.c
@@ -102,7 +102,7 @@ _efl_canvas_gesture_recognizer_double_tap_efl_canvas_gesture_recognizer_recogniz
if (efl_gesture_state_get(gesture) != EFL_GESTURE_STATE_NONE &&
!_event_multi_touch_get(event))
{
- dist = efl_gesture_touch_distance(event, 0);
+ dist = efl_gesture_touch_distance(event, efl_gesture_touch_current_data_get(event)->id);
length = fabs(dist.x) + fabs(dist.y);
if (length > pd->finger_size)
@@ -141,7 +141,7 @@ _efl_canvas_gesture_recognizer_double_tap_efl_canvas_gesture_recognizer_recogniz
}
}
}
- dist = efl_gesture_touch_distance(event, 0);
+ dist = efl_gesture_touch_distance(event, efl_gesture_touch_current_data_get(event)->id);
length = fabs(dist.x) + fabs(dist.y);
if (length <= pd->finger_size)
diff --git a/src/lib/evas/gesture/efl_canvas_gesture_recognizer_long_press.c b/src/lib/evas/gesture/efl_canvas_gesture_recognizer_long_press.c
index bcbe5bd592..e146c5acaf 100644
--- a/src/lib/evas/gesture/efl_canvas_gesture_recognizer_long_press.c
+++ b/src/lib/evas/gesture/efl_canvas_gesture_recognizer_long_press.c
@@ -85,7 +85,7 @@ _efl_canvas_gesture_recognizer_long_press_efl_canvas_gesture_recognizer_recogniz
case EFL_GESTURE_TOUCH_STATE_UPDATE:
{
- dist = efl_gesture_touch_distance(event, 0);
+ dist = efl_gesture_touch_distance(event, efl_gesture_touch_current_data_get(event)->id);
length = fabs(dist.x) + fabs(dist.y);
if ((_event_multi_touch_get(event)) || (length > pd->finger_size))
@@ -117,7 +117,7 @@ _efl_canvas_gesture_recognizer_long_press_efl_canvas_gesture_recognizer_recogniz
if (efl_gesture_state_get(gesture) != EFL_GESTURE_STATE_NONE &&
!_event_multi_touch_get(event))
{
- dist = efl_gesture_touch_distance(event, 0);
+ dist = efl_gesture_touch_distance(event, efl_gesture_touch_current_data_get(event)->id);
length = fabs(dist.x) + fabs(dist.y);
if (length <= pd->finger_size && pd->is_timeout)
{
diff --git a/src/lib/evas/gesture/efl_canvas_gesture_recognizer_tap.c b/src/lib/evas/gesture/efl_canvas_gesture_recognizer_tap.c
index eec8c34a22..f4c28879cb 100644
--- a/src/lib/evas/gesture/efl_canvas_gesture_recognizer_tap.c
+++ b/src/lib/evas/gesture/efl_canvas_gesture_recognizer_tap.c
@@ -80,7 +80,7 @@ new_tap:
if (_event_multi_touch_get(event)) return EFL_GESTURE_RECOGNIZER_RESULT_IGNORE;
if (efl_gesture_state_get(gesture) != EFL_GESTURE_STATE_NONE)
{
- dist = efl_gesture_touch_distance(event, 0);
+ dist = efl_gesture_touch_distance(event, efl_gesture_touch_current_data_get(event)->id);
length = fabs(dist.x) + fabs(dist.y);
if (length <= pd->finger_size)
{
diff --git a/src/lib/evas/gesture/efl_canvas_gesture_recognizer_triple_tap.c b/src/lib/evas/gesture/efl_canvas_gesture_recognizer_triple_tap.c
index f79aff5f71..75cb3686b4 100644
--- a/src/lib/evas/gesture/efl_canvas_gesture_recognizer_triple_tap.c
+++ b/src/lib/evas/gesture/efl_canvas_gesture_recognizer_triple_tap.c
@@ -101,7 +101,7 @@ _efl_canvas_gesture_recognizer_triple_tap_efl_canvas_gesture_recognizer_recogniz
if (efl_gesture_state_get(gesture) != EFL_GESTURE_STATE_NONE &&
!_event_multi_touch_get(event))
{
- dist = efl_gesture_touch_distance(event, 0);
+ dist = efl_gesture_touch_distance(event, efl_gesture_touch_current_data_get(event)->id);
length = fabs(dist.x) + fabs(dist.y);
if (length > pd->finger_size)
@@ -140,7 +140,7 @@ _efl_canvas_gesture_recognizer_triple_tap_efl_canvas_gesture_recognizer_recogniz
}
}
}
- dist = efl_gesture_touch_distance(event, 0);
+ dist = efl_gesture_touch_distance(event, efl_gesture_touch_current_data_get(event)->id);
length = fabs(dist.x) + fabs(dist.y);
if (length <= pd->finger_size)