From 2ec5417dfbc72df9258b832718aa3a586e062d09 Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Mon, 5 Sep 2011 12:16:36 +0000 Subject: [PATCH] elm genlist: Fixed reordering mode bug. 1. Fixed floating item bug while reordering. 2. Fixed moving an item out of range bug while reordering. SVN revision: 63195 --- legacy/elementary/src/lib/elm_genlist.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/legacy/elementary/src/lib/elm_genlist.c b/legacy/elementary/src/lib/elm_genlist.c index 26f084ab7f..ba14c96998 100644 --- a/legacy/elementary/src/lib/elm_genlist.c +++ b/legacy/elementary/src/lib/elm_genlist.c @@ -1029,6 +1029,7 @@ _long_press(void *data) evas_object_raise(it->base.view); elm_smart_scroller_hold_set(it->wd->scr, EINA_TRUE); + elm_smart_scroller_bounce_allow_set(it->wd->scr, EINA_FALSE, EINA_FALSE); list = elm_genlist_realized_items_get(it->wd->obj); EINA_LIST_FOREACH(list, l, it_tmp) @@ -1331,24 +1332,22 @@ _mouse_up(void *data, { Evas_Coord it_scrl_y = ev->canvas.y - it->wd->reorder_it->dy; - if (it->wd->reorder_rel) + if (it->wd->reorder_rel && (it->wd->reorder_it->parent == it->wd->reorder_rel->parent)) { - if (it->wd->reorder_it->parent == it->wd->reorder_rel->parent) - { - if (it_scrl_y <= it->wd->reorder_rel->scrl_y) - _item_move_before(it->wd->reorder_it, it->wd->reorder_rel); - else - _item_move_after(it->wd->reorder_it, it->wd->reorder_rel); - } + if (it_scrl_y <= it->wd->reorder_rel->scrl_y) + _item_move_before(it->wd->reorder_it, it->wd->reorder_rel); else - { - if (it->wd->calc_job) ecore_job_del(it->wd->calc_job); - it->wd->calc_job = ecore_job_add(_calc_job, it->wd); - } + _item_move_after(it->wd->reorder_it, it->wd->reorder_rel); + } + else + { + if (it->wd->calc_job) ecore_job_del(it->wd->calc_job); + it->wd->calc_job = ecore_job_add(_calc_job, it->wd); } edje_object_signal_emit(it->base.view, "elm,state,reorder,disabled", "elm"); it->wd->reorder_it = it->wd->reorder_rel = NULL; elm_smart_scroller_hold_set(it->wd->scr, EINA_FALSE); + elm_smart_scroller_bounce_allow_set(it->wd->scr, EINA_FALSE, EINA_TRUE); } if (it->wd->longpressed) {