int drag_x_delta;
int drag_y_delta;
} tap_n_hold_gesture_data;
+
+ Ecore_Timer *up_timer;
};
typedef struct _Cover Cover;
}
static Eina_Bool
+_on_up_timeout(void *data)
+{
+ Ecore_Event_Mouse_Button *ev_up = data;
+ ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev_up, NULL, NULL);
+ cover->up_timer = NULL;
+ return EINA_FALSE;
+}
+
+static Eina_Bool
_mouse_button_up(int type, Ecore_Event_Mouse_Button *event)
{
Ecore_Event_Mouse_Button *ev = event;
}
memcpy(ev_up, ev, sizeof(Ecore_Event_Mouse_Button));
ev_up->multi.radius += MAGIC_NUMBER;
- ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev_up, NULL, NULL);
+
+ if (cover->up_timer)
+ ecore_timer_del(cover->up_timer);
+ cover->up_timer = ecore_timer_add(0, _on_up_timeout, ev_up);
+
cover->tap_n_hold_gesture_data.drag_start = EINA_FALSE;
highlighted_object_x = -1;
highlighted_object_y = -1;
{
ERROR("Fail to find zone");
}
+ cover->up_timer = NULL;
}
static void
ecore_timer_del(cover->tap_gesture_data.timer);
if (cover->hover_gesture.timer)
ecore_timer_del(cover->hover_gesture.timer);
+ if (cover->up_timer)
+ ecore_timer_del(cover->up_timer);
+ cover->up_timer = NULL;
free(cover);
}