Elfe: Be more tolerant to mouse move during edit mode activation by adding threshold

SVN revision: 60046
This commit is contained in:
Nicolas Aguirre 2011-06-07 18:16:45 +00:00
parent ef0b85bbae
commit 54d7ecd9b3
1 changed files with 20 additions and 8 deletions

View File

@ -12,6 +12,8 @@
#define ELFE_DESKTOP_PADDING_W 10
#define ELFE_DESKTOP_PADDING_H 10
#define LONGPRESS_THRESHOLD 16
typedef struct _Elfe_Desktop Elfe_Desktop;
struct _Elfe_Desktop
@ -32,6 +34,7 @@ struct _Elfe_Desktop
Eina_Bool on_hold;
Eina_Bool edit_mode;
Eina_List *overs;
Evas_Coord dx, dy;
};
@ -86,20 +89,29 @@ _longpress_timer_cb(void *data)
}
static void
_scroller_mouse_move_cb(void *data,Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_scroller_mouse_move_cb(void *data,Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
Elfe_Desktop *desk = data;
Evas_Coord dx, dy;
Evas_Event_Mouse_Move *ev = event_info;
if (!desk->on_hold)
{
desk->on_hold = EINA_FALSE;
}
if (desk->longpress_timer)
{
ecore_timer_del(desk->longpress_timer);
desk->longpress_timer = NULL;
desk->dx += ev->cur.output.x - ev->prev.output.x;
desk->dy += ev->cur.output.y - ev->prev.output.y;
if (abs(desk->dx) > LONGPRESS_THRESHOLD || abs(desk->dy) > LONGPRESS_THRESHOLD)
{
ecore_timer_del(desk->longpress_timer);
desk->longpress_timer = NULL;
desk->dx = 0;
desk->dy = 0;
}
}
}
@ -113,6 +125,8 @@ _scroller_mouse_up_cb(void *data,Evas *evas __UNUSED__, Evas_Object *obj __UNUSE
{
ecore_timer_del(desk->longpress_timer);
desk->longpress_timer = NULL;
desk->dx = 0;
desk->dy = 0;
}
}
@ -128,13 +142,11 @@ _scroller_mouse_down_cb(void *data,Evas *evas __UNUSED__, Evas_Object *obj __UNU
if (desk->longpress_timer)
ecore_timer_del(desk->longpress_timer);
desk->longpress_timer = ecore_timer_add(1.0, _longpress_timer_cb, desk);
desk->dx = 0;
desk->dy = 0;
}
}
static void
_cb_object_resize(void *data , Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
{