From db42065b84f0b751a8db4adc58b41b66bae96dc2 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Tue, 8 Sep 2009 06:35:14 +0000 Subject: [PATCH] test callbacks and fix select on drag SVN revision: 42344 --- src/bin/test_genlist.c | 43 +++++++++++++++++++++++++++++++++++++++++++ src/lib/elm_genlist.c | 3 +++ 2 files changed, 46 insertions(+) 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) -- 2.7.4