From f6b66cc1d3b94bedc25cb10bd5317855954af973 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 28 Nov 2013 16:36:55 +0900 Subject: [PATCH] genlist - fix show item if list manipulation changes shown item position this fixes T38 - it's a bit brute force but the only way i can think of that is not too invasive before release. --- legacy/elementary/src/lib/elm_genlist.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/legacy/elementary/src/lib/elm_genlist.c b/legacy/elementary/src/lib/elm_genlist.c index f68d48c..e469770 100644 --- a/legacy/elementary/src/lib/elm_genlist.c +++ b/legacy/elementary/src/lib/elm_genlist.c @@ -3137,6 +3137,7 @@ _item_del(Elm_Gen_Item *it) elm_genlist_item_class_unref((Elm_Genlist_Item_Class *)it->itc); evas_event_thaw(evas_object_evas_get(obj)); evas_event_thaw_eval(evas_object_evas_get(obj)); + if (!sd->queue) _item_scroll(sd); } static void @@ -3959,6 +3960,7 @@ _queue_process(Elm_Genlist_Smart_Data *sd) if ((t - t0) > (ecore_animator_frametime_get())) break; } } + if (!sd->queue) _item_scroll(sd); return n; } @@ -6302,10 +6304,11 @@ _elm_genlist_item_coordinates_calc(Elm_Object_Item *item, ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd); if (it->generation < sd->generation) return EINA_FALSE; - if (!((sd->homogeneous) && - (sd->mode == ELM_LIST_COMPRESS))) + if ((sd->queue) || + (!((sd->homogeneous) && + (sd->mode == ELM_LIST_COMPRESS)))) { - if ((it->item->queued) || (!it->item->mincalcd)) + if ((it->item->queued) || (!it->item->mincalcd) || (sd->queue)) { sd->show_item = it; sd->bring_in = bring_in; -- 2.7.4