summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2020-02-05 09:48:57 -0500
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-02-14 09:20:54 +0100
commit9e53d9c017dca2098eb4bf3f96aba57d85194b45 (patch)
treef971f568809cf09e0ccb6a58652120a1d551f049
parentedcc16238b3885f32bdde5c7dd4864e6809880db (diff)
downloadefl-9e53d9c017dca2098eb4bf3f96aba57d85194b45.tar.gz
efl/gesture: fix touch state tracking
correctly set 'pressed' member of touch data only on press events and don't change it on move events in order to avoid having mismatched states Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11291
-rw-r--r--src/lib/evas/gesture/efl_canvas_gesture_touch.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/evas/gesture/efl_canvas_gesture_touch.c b/src/lib/evas/gesture/efl_canvas_gesture_touch.c
index 84573a21b2..0d7e00495a 100644
--- a/src/lib/evas/gesture/efl_canvas_gesture_touch.c
+++ b/src/lib/evas/gesture/efl_canvas_gesture_touch.c
@@ -97,10 +97,13 @@ _efl_canvas_gesture_touch_point_record(Eo *obj EINA_UNUSED, Efl_Canvas_Gesture_T
pd->cur_touch = point;
point->action = action;
- if (!id && (action == EFL_POINTER_ACTION_DOWN))
+ if (action == EFL_POINTER_ACTION_DOWN)
{
point->cur.pressed = EINA_TRUE;
- pd->state = EFL_GESTURE_TOUCH_STATE_BEGIN;
+ if (!id)
+ pd->state = EFL_GESTURE_TOUCH_STATE_BEGIN;
+ else
+ pd->state = EFL_GESTURE_TOUCH_STATE_UPDATE;
}
else if (action == EFL_POINTER_ACTION_UP)
{
@@ -111,7 +114,6 @@ _efl_canvas_gesture_touch_point_record(Eo *obj EINA_UNUSED, Efl_Canvas_Gesture_T
{
pd->state = EFL_GESTURE_TOUCH_STATE_UPDATE;
}
- point->cur.pressed |= action == EFL_POINTER_ACTION_DOWN || action == EFL_POINTER_ACTION_MOVE;
return;
finished_touch: