From: Carsten Haitzler Date: Tue, 8 Sep 2009 06:35:14 +0000 (+0000) Subject: test callbacks and fix select on drag X-Git-Tag: v1.0.0~5265 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=db42065b84f0b751a8db4adc58b41b66bae96dc2;p=platform%2Fupstream%2Felementary.git test callbacks and fix select on drag SVN revision: 42344 --- diff --git a/src/bin/test_genlist.c b/src/bin/test_genlist.c index 3b3dc31..c3448f9 100644 --- a/src/bin/test_genlist.c +++ b/src/bin/test_genlist.c @@ -756,6 +756,42 @@ void gl5_del(const void *data, Evas_Object *obj) { } +static void +item_drag_up(void *data, Evas_Object *obj, void *event_info) +{ + printf("drag up\n"); +} + +static void +item_drag_down(void *data, Evas_Object *obj, void *event_info) +{ + printf("drag down\n"); +} + +static void +item_drag_left(void *data, Evas_Object *obj, void *event_info) +{ + printf("drag left\n"); +} + +static void +item_drag_right(void *data, Evas_Object *obj, void *event_info) +{ + printf("drag right\n"); +} + +static void +item_drag(void *data, Evas_Object *obj, void *event_info) +{ + printf("drag\n"); +} + +static void +item_drag_stop(void *data, Evas_Object *obj, void *event_info) +{ + printf("drag stop\n"); +} + void test_genlist5(void *data, Evas_Object *obj, void *event_info) { @@ -804,6 +840,13 @@ test_genlist5(void *data, Evas_Object *obj, void *event_info) elm_box_pack_end(bx, gl); elm_object_scroll_freeze_push(gl); evas_object_show(bx2); + + evas_object_smart_callback_add(gl, "drag,start,up", item_drag_up, NULL); + evas_object_smart_callback_add(gl, "drag,start,down", item_drag_down, NULL); + evas_object_smart_callback_add(gl, "drag,start,left", item_drag_left, NULL); + evas_object_smart_callback_add(gl, "drag,start,right", item_drag_right, NULL); + evas_object_smart_callback_add(gl, "drag", item_drag, NULL); + evas_object_smart_callback_add(gl, "drag,stop", item_drag_stop, NULL); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, 1); diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 46fa77e..5d16076 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -593,6 +593,7 @@ _mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info) Elm_Genlist_Item *it = data; Evas_Event_Mouse_Up *ev = event_info; Eina_List *l; + Eina_Bool dragged = 0; if (ev->button != 1) return; it->down = 0; if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) it->wd->on_hold = EINA_TRUE; @@ -606,6 +607,7 @@ _mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info) { it->dragging = 0; evas_object_smart_callback_call(it->wd->obj, "drag,stop", it); + dragged = 1; } if (it->wd->on_hold) { @@ -622,6 +624,7 @@ _mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info) return; } if (it->disabled) return; + if (dragged) return; if (it->wd->multi) { if (!it->selected)