return gesture->event_state;
}
+static E_Gesture_Event_State
+_e_gesture_process_mouse_button_cancel(void *event)
+{
+ Ecore_Event_Mouse_Button *ev = event;
+
+ //For Debug
+ GTWRN("Mouse Cancel. id:%d dev:%s", ev->multi.device,
+ ev->dev ? ecore_device_identifier_get(ev->dev) : "No device");
+
+ if (!_e_gesture_process_touch_check(ev->dev, ev->multi.device))
+ return E_GESTURE_EVENT_STATE_PROPAGATE;
+
+ gesture->gesture_events.base_point[ev->multi.device + 1].pressed = EINA_FALSE;
+ gesture->gesture_events.base_point[ev->multi.device + 1].axis.x = 0;
+ gesture->gesture_events.base_point[ev->multi.device + 1].axis.y = 0;
+
+ if (gesture->gesture_events.num_pressed != 0)
+ return E_GESTURE_EVENT_STATE_PROPAGATE;
+
+ if (!(gesture->gesture_filter & E_GESTURE_TYPE_EDGE_SWIPE))
+ {
+ _e_gesture_edge_swipe_cancel();
+ }
+ if (!(gesture->gesture_filter & E_GESTURE_TYPE_EDGE_DRAG))
+ {
+ _e_gesture_edge_drag_cancel();
+ }
+ if (!(gesture->gesture_filter & E_GESTURE_TYPE_PAN))
+ {
+ _e_gesture_pan_cancel();
+ }
+ if (!(gesture->gesture_filter & E_GESTURE_TYPE_PINCH))
+ {
+ _e_gesture_pinch_cancel();
+ }
+ if (!(gesture->gesture_filter & E_GESTURE_TYPE_TAP))
+ {
+ _e_gesture_tap_cancel();
+ }
+
+ if (gesture->gesture_events.recognized_gesture)
+ {
+ GTINF("Mouse Cancel. recognized_gesture has a value (%d). return E_GESTURE_EVENT_STATE_IGNORE",
+ gesture->gesture_events.recognized_gesture);
+ if (gesture->gesture_events.num_pressed == 0)
+ {
+ if (gesture->gesture_events.recognized_gesture & E_GESTURE_TYPE_PALM_COVER)
+ {
+ gesture->event_state = gesture->prev_event_state;
+ }
+ gesture->gesture_events.recognized_gesture = 0x0;
+ }
+ return E_GESTURE_EVENT_STATE_IGNORE;
+ }
+
+ return gesture->event_state;
+}
+
static E_Gesture_Event_State
_e_gesture_process_mouse_button_up(void *event)
{
res = _e_gesture_process_mouse_button_up(event);
else if (type == ECORE_EVENT_MOUSE_MOVE)
res = _e_gesture_process_mouse_move(event);
+ else if (type == ECORE_EVENT_MOUSE_BUTTON_CANCEL)
+ res = _e_gesture_process_mouse_button_cancel(event);
else if (type == ECORE_EVENT_KEY_DOWN)
res = _e_gesture_process_key_down(event);
else if (type == ECORE_EVENT_KEY_UP)
}
if (gesture->gesture_events.num_pressed == 0 &&
- type == ECORE_EVENT_MOUSE_BUTTON_UP)
+ (type == ECORE_EVENT_MOUSE_BUTTON_UP ||
+ type == ECORE_EVENT_MOUSE_BUTTON_CANCEL))
{
if (gesture->grabbed_gesture & E_GESTURE_TYPE_TAP ||
((gesture->grabbed_gesture & E_GESTURE_TYPE_EDGE_SWIPE) &&