From: duna.oh Date: Tue, 26 Nov 2024 11:09:07 +0000 (+0900) Subject: pan/pinch: delete start_timer and set START state when all fingers are pressed X-Git-Tag: accepted/tizen/7.0/unified/20241205.085632~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F11%2F321011%2F2;p=platform%2Fcore%2Fuifw%2Fe-mod-tizen-gesture.git pan/pinch: delete start_timer and set START state when all fingers are pressed Change-Id: Ie366ec69ab00968115172dea058c95023c59feed --- diff --git a/src/e_mod_gesture_events.c b/src/e_mod_gesture_events.c index cd77084..1759625 100644 --- a/src/e_mod_gesture_events.c +++ b/src/e_mod_gesture_events.c @@ -961,6 +961,8 @@ _e_gesture_process_pan_down(Ecore_Event_Mouse_Button *ev) { E_Gesture_Event_Pan *pans = &gesture->gesture_events.pans; E_Gesture_Conf_Edd *conf = gesture->config->conf; + int num_pressed = gesture->gesture_events.num_pressed; + Coords start_point = {0, }; if (!pans->activation.active) { @@ -973,13 +975,24 @@ _e_gesture_process_pan_down(Ecore_Event_Mouse_Button *ev) (gesture->gesture_events.recognized_gesture & E_GESTURE_TYPE_PINCH))) _e_gesture_pan_cancel(); - if (gesture->gesture_events.num_pressed == 1) + if (num_pressed == 1) { GTINF("Pan state changed. %d -> %d", pans->state, E_GESTURE_PANPINCH_STATE_READY); pans->state = E_GESTURE_PANPINCH_STATE_READY; if (pans->start_timer) ecore_timer_del(pans->start_timer); pans->start_timer = ecore_timer_add(conf->pan.time_start, _e_gesture_timer_pan_start, NULL); } + else if (pans->fingers[num_pressed].client) + { + _e_gesture_util_center_axis_get(num_pressed, &start_point.x, &start_point.y); + pans->start_point.x = pans->center_point.x = start_point.x; + pans->start_point.y = pans->center_point.y = start_point.y; + GTINF("Pan state changed. %d -> %d start_point : (%d, %d)", pans->state, E_GESTURE_PANPINCH_STATE_START, + pans->start_point.x, pans->start_point.y); + pans->state = E_GESTURE_PANPINCH_STATE_START; + ecore_timer_del(pans->start_timer); + pans->start_timer = NULL; + } } static void @@ -1109,7 +1122,7 @@ _e_gesture_timer_pinch_start(void *data) if (pinch->fingers[num_pressed].client) { pinch->distance = _e_gesture_util_distances_get(num_pressed); - GTINF("Pinch state changed. %d -> %d distance : %lf", pinch->state, E_GESTURE_PANPINCH_STATE_DONE, + GTINF("Pinch state changed. %d -> %d distance : %lf", pinch->state, E_GESTURE_PANPINCH_STATE_START, pinch->distance); pinch->state = E_GESTURE_PANPINCH_STATE_START; } @@ -1126,6 +1139,7 @@ _e_gesture_process_pinch_down(Ecore_Event_Mouse_Button *ev) { E_Gesture_Event_Pinch *pinch = &gesture->gesture_events.pinchs; E_Gesture_Conf_Edd *conf = gesture->config->conf; + int num_pressed = gesture->gesture_events.num_pressed; if (!pinch->activation.active) { @@ -1138,13 +1152,22 @@ _e_gesture_process_pinch_down(Ecore_Event_Mouse_Button *ev) (gesture->gesture_events.recognized_gesture & E_GESTURE_TYPE_PINCH))) _e_gesture_pinch_cancel(); - if (gesture->gesture_events.num_pressed == 1) + if (num_pressed == 1) { GTINF("Pinch state changed. %d -> %d", pinch->state, E_GESTURE_PANPINCH_STATE_READY); pinch->state = E_GESTURE_PANPINCH_STATE_READY; if (pinch->start_timer) ecore_timer_del(pinch->start_timer); pinch->start_timer = ecore_timer_add(conf->pan.time_start, _e_gesture_timer_pinch_start, NULL); } + else if (pinch->fingers[num_pressed].client) + { + pinch->distance = _e_gesture_util_distances_get(num_pressed); + GTINF("Pinch state changed. %d -> %d distance : %lf", pinch->state, E_GESTURE_PANPINCH_STATE_START, + pinch->distance); + pinch->state = E_GESTURE_PANPINCH_STATE_START; + ecore_timer_del(pinch->start_timer); + pinch->start_timer = NULL; + } } static void