Eina_Bool double_tap;
Ecore_Event_Mouse_Button *ev_down;
Eina_Bool drag_start;
+ int drag_x_delta;
+ int drag_y_delta;
} tap_n_hold_gesture_data;
};
typedef struct _Cover Cover;
cov->tap_n_hold_gesture_data.ev_down->y = highlighted_object_y;
cov->tap_n_hold_gesture_data.ev_down->root.x = highlighted_object_x;
cov->tap_n_hold_gesture_data.ev_down->root.y = highlighted_object_y;
+ cov->tap_n_hold_gesture_data.drag_x_delta = highlighted_object_x - cov->hover_gesture.x[0];
+ cov->tap_n_hold_gesture_data.drag_y_delta = highlighted_object_y - cov->hover_gesture.y[0];
+ }
+ else
+ {
+ cov->tap_n_hold_gesture_data.drag_x_delta = 0;
+ cov->tap_n_hold_gesture_data.drag_y_delta = 0;
}
_emit_mouse_move_event(cov->tap_n_hold_gesture_data.ev_down);
cov->tap_n_hold_gesture_data.ev_down->multi.radius += MAGIC_NUMBER;
{
/* Do not change event point info if its multi.radius >= MAGIC_NUMBER.
It is created before down event occurs in _emit_mouse_move_event for start_Scroll */
- ev->x += cover->flick_gesture.object_needs_scroll_x_delta;
- ev->y += cover->flick_gesture.object_needs_scroll_y_delta;
- ev->root.x += cover->flick_gesture.object_needs_scroll_x_delta;
- ev->root.y += cover->flick_gesture.object_needs_scroll_y_delta;
+ if (cover->tap_n_hold_gesture_data.drag_start)
+ {
+ ev->x += cover->tap_n_hold_gesture_data.drag_x_delta;
+ ev->y += cover->tap_n_hold_gesture_data.drag_y_delta;
+ ev->root.x += cover->tap_n_hold_gesture_data.drag_x_delta;
+ ev->root.y += cover->tap_n_hold_gesture_data.drag_y_delta;
+ }
+ else
+ {
+ ev->x += cover->flick_gesture.object_needs_scroll_x_delta;
+ ev->y += cover->flick_gesture.object_needs_scroll_y_delta;
+ ev->root.x += cover->flick_gesture.object_needs_scroll_x_delta;
+ ev->root.y += cover->flick_gesture.object_needs_scroll_y_delta;
+ }
}
if (cover->flick_gesture.flick_to_scroll) _hover_gesture_mouse_move(ev, cover);
return EINA_TRUE;