diff options
author | Mike Blumenkrantz <zmike@samsung.com> | 2020-02-05 09:48:57 -0500 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-02-14 09:20:54 +0100 |
commit | 9e53d9c017dca2098eb4bf3f96aba57d85194b45 (patch) | |
tree | f971f568809cf09e0ccb6a58652120a1d551f049 | |
parent | edcc16238b3885f32bdde5c7dd4864e6809880db (diff) | |
download | efl-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.c | 8 |
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: |