From f9f354af97da80f37e19d29b8b319abf201942cb Mon Sep 17 00:00:00 2001 From: JengHyun Kang Date: Mon, 18 Sep 2017 14:47:03 +0900 Subject: [PATCH] tap: check a different number of fingers in each repeats Change-Id: Icad4afd323ea8842b025a7df4dcd7e284695ff2d --- src/e_mod_gesture_events.c | 7 +++++++ src/e_mod_main.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/e_mod_gesture_events.c b/src/e_mod_gesture_events.c index ce01a23..ba460e8 100644 --- a/src/e_mod_gesture_events.c +++ b/src/e_mod_gesture_events.c @@ -1209,6 +1209,7 @@ _e_gesture_tap_cancel(void) taps->repeats = 0; taps->enabled_finger = 0; + taps->current_finger = 0; taps->state = E_GESTURE_TAP_STATE_READY; taps->base_rect.x1 = 0; taps->base_rect.y1 = 0; @@ -1343,6 +1344,7 @@ _e_gesture_tap_done(void) ecore_timer_del(taps->done_timer); taps->done_timer = NULL; } + taps->current_finger = 0; if (taps->repeats == taps->fingers[taps->enabled_finger].max_repeats) { ecore_timer_del(taps->interval_timer); @@ -1371,6 +1373,8 @@ _e_gesture_process_tap_down(Ecore_Event_Mouse_Button *ev) if (taps->enabled_finger < gesture->gesture_events.num_pressed) taps->enabled_finger = gesture->gesture_events.num_pressed; + taps->current_finger++; + if (taps->enabled_finger > taps->max_fingers) _e_gesture_tap_cancel(); @@ -1454,6 +1458,9 @@ _e_gesture_process_tap_up(Ecore_Event_Mouse_Button *ev) if (gesture->gesture_events.recognized_gesture) _e_gesture_tap_cancel(); + if (taps->enabled_finger != taps->current_finger) + _e_gesture_tap_cancel(); + switch (taps->state) { case E_GESTURE_TAP_STATE_NONE: diff --git a/src/e_mod_main.h b/src/e_mod_main.h index 890c9f2..428c1b3 100644 --- a/src/e_mod_main.h +++ b/src/e_mod_main.h @@ -290,6 +290,7 @@ struct _E_Gesture_Event_Tap E_Gesture_Event_Tap_Finger fingers[E_GESTURE_FINGER_MAX + 2]; E_Gesture_Tap_State state; unsigned int enabled_finger; + unsigned int current_finger; unsigned int repeats; unsigned int max_fingers; -- 2.7.4