diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2013-11-28 16:36:55 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2013-11-28 16:36:55 +0900 |
commit | ca70a1a8f394bff2e226dd01c0f6336eaaa03810 (patch) | |
tree | 20ff12257600a9d08ac7150002e68303eabf66bb | |
parent | 4223a4b5ee1385905014d69e7e1a0efdd80afa12 (diff) | |
download | elementary-ca70a1a8f394bff2e226dd01c0f6336eaaa03810.tar.gz |
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.
-rw-r--r-- | src/lib/elm_genlist.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index f68d48cb2..e4697706d 100644 --- a/src/lib/elm_genlist.c +++ b/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; |