From: duna.oh Date: Thu, 30 May 2024 12:41:30 +0000 (+0900) Subject: palm_cover: separate palm_cover BEGIN and END events sending X-Git-Tag: accepted/tizen/unified/x/20240708.080632~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=acf69a911109d423b522d233c8c00f3498c67f3c;p=platform%2Fcore%2Fuifw%2Fe-mod-tizen-gesture.git palm_cover: separate palm_cover BEGIN and END events sending Before, the palm_cover event was regarded as a momentary gesture rather than a continuous one. Current: event's axis value is 1, both the palm_cover BEGIN and END events are sent. event's axis value is 0, no palm_cover event is sent. Modified: event's axis value is 1, palm_cover BEGIN event is sent. event's axis value is 0, palm_cover END event is set. (FYI, How palm_cover gesture is generated: ABS_MT_PALM value --> libinput touch event's aux data --> E20 ecore_event_add(ECORE_EVENT_AXIS_UPDATE, --> e-mod-tizen-gesture sends palm_cover event using tizen_gesture protocol) Change-Id: If08bc917f9faa069397fd34ae6bc3faa84623f6c --- diff --git a/src/e_mod_gesture_events.c b/src/e_mod_gesture_events.c index 3c6ee48..bdba43c 100644 --- a/src/e_mod_gesture_events.c +++ b/src/e_mod_gesture_events.c @@ -1852,7 +1852,7 @@ _e_gesture_process_key_up(void *event) } static void -_e_gesture_send_palm_cover(void) +_e_gesture_send_palm_cover(int mode) { Ecore_Event_Mouse_Button *ev_cancel; E_Gesture_Event_Palm_Cover *palm_covers = &gesture->gesture_events.palm_covers; @@ -1882,8 +1882,6 @@ _e_gesture_send_palm_cover(void) ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_CANCEL, ev_cancel, NULL, NULL); } - _e_gesture_util_center_axis_get(gesture->gesture_events.num_pressed, &cx, &cy); - GTINF("Send palm_cover gesture to client: %p\n", palm_covers->client_info.client); if (palm_covers->client_info.client == E_GESTURE_SERVER_CLIENT) @@ -1891,18 +1889,7 @@ _e_gesture_send_palm_cover(void) ev_palm_cover = E_NEW(E_Event_Gesture_Palm_Cover, 1); EINA_SAFETY_ON_NULL_RETURN(ev_palm_cover); - ev_palm_cover->mode = E_GESTURE_MODE_BEGIN; - ev_palm_cover->duration = duration; - ev_palm_cover->cx = cx; - ev_palm_cover->cy = cy; - ev_palm_cover->size = size; - ev_palm_cover->pressure = 0.0; - ecore_event_add(E_EVENT_GESTURE_PALM_COVER, ev_palm_cover, NULL, NULL); - - ev_palm_cover = E_NEW(E_Event_Gesture_Palm_Cover, 1); - EINA_SAFETY_ON_NULL_RETURN(ev_palm_cover); - - ev_palm_cover->mode = E_GESTURE_MODE_END; + ev_palm_cover->mode = mode; ev_palm_cover->duration = duration; ev_palm_cover->cx = cx; ev_palm_cover->cy = cy; @@ -1940,36 +1927,55 @@ _e_gesture_send_palm_cover(void) } else { - tizen_gesture_send_palm_cover(res, surface, E_GESTURE_MODE_BEGIN, duration, size, pressure, cx, cy); - tizen_gesture_send_palm_cover(res, surface, E_GESTURE_MODE_END, duration, size, pressure, cx, cy); + tizen_gesture_send_palm_cover(res, surface, mode, duration, size, pressure, cx, cy); } } +} - gesture->prev_event_state = gesture->event_state; - gesture->event_state = E_GESTURE_EVENT_STATE_IGNORE; - gesture->gesture_events.recognized_gesture |= E_GESTURE_TYPE_PALM_COVER; +static void +_e_gesture_palm_cover_cancel(void) +{ + _e_gesture_send_palm_cover(E_GESTURE_MODE_END); + + gesture->event_state = gesture->prev_event_state; + gesture->gesture_filter |= E_GESTURE_TYPE_PALM_COVER; + gesture->gesture_events.recognized_gesture &= ~E_GESTURE_TYPE_PALM_COVER; } static void _e_gesture_process_palm_cover(int val) { - if (gesture->gesture_events.recognized_gesture) + E_Gesture_Event_Palm_Cover *palm_covers = &gesture->gesture_events.palm_covers; + + if (val == 1) { - return; - } + if (gesture->gesture_events.recognized_gesture) + { + GTWRN("Palm Cover recognized_gesture has a value(%d). return", + gesture->gesture_events.recognized_gesture); + return; + } + _e_gesture_send_palm_cover(E_GESTURE_MODE_BEGIN); - _e_gesture_send_palm_cover(); + gesture->prev_event_state = gesture->event_state; + gesture->event_state = E_GESTURE_EVENT_STATE_IGNORE; + gesture->gesture_events.recognized_gesture |= E_GESTURE_TYPE_PALM_COVER; + } + else if (val == 0) + { + _e_gesture_palm_cover_cancel(); + } } static void _e_gesture_process_palm(int val) { - if (val <= 0) return; if (!gesture->grabbed_gesture) return; if (!(gesture->gesture_filter & E_GESTURE_TYPE_PALM_COVER) && gesture->gesture_events.palm_covers.activation.active) { + GTINF("Palm Cover processing.. val: %d", val); _e_gesture_process_palm_cover(val); } } diff --git a/src/e_mod_main.h b/src/e_mod_main.h index 7d275fc..61d4e49 100644 --- a/src/e_mod_main.h +++ b/src/e_mod_main.h @@ -330,7 +330,6 @@ struct _E_Gesture_Event_Palm_Cover E_Gesture_Activate_Info activation; E_Gesture_Event_Client client_info; Eina_List *select_surface_list; - unsigned int start_time; }; struct _E_Gesture_Grabbed_Client