summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2013-11-28 16:36:55 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2013-11-28 16:36:55 +0900
commitca70a1a8f394bff2e226dd01c0f6336eaaa03810 (patch)
tree20ff12257600a9d08ac7150002e68303eabf66bb /src
parent4223a4b5ee1385905014d69e7e1a0efdd80afa12 (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/lib/elm_genlist.c9
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)
3137 elm_genlist_item_class_unref((Elm_Genlist_Item_Class *)it->itc); 3137 elm_genlist_item_class_unref((Elm_Genlist_Item_Class *)it->itc);
3138 evas_event_thaw(evas_object_evas_get(obj)); 3138 evas_event_thaw(evas_object_evas_get(obj));
3139 evas_event_thaw_eval(evas_object_evas_get(obj)); 3139 evas_event_thaw_eval(evas_object_evas_get(obj));
3140 if (!sd->queue) _item_scroll(sd);
3140} 3141}
3141 3142
3142static void 3143static void
@@ -3959,6 +3960,7 @@ _queue_process(Elm_Genlist_Smart_Data *sd)
3959 if ((t - t0) > (ecore_animator_frametime_get())) break; 3960 if ((t - t0) > (ecore_animator_frametime_get())) break;
3960 } 3961 }
3961 } 3962 }
3963 if (!sd->queue) _item_scroll(sd);
3962 return n; 3964 return n;
3963} 3965}
3964 3966
@@ -6302,10 +6304,11 @@ _elm_genlist_item_coordinates_calc(Elm_Object_Item *item,
6302 ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd); 6304 ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
6303 6305
6304 if (it->generation < sd->generation) return EINA_FALSE; 6306 if (it->generation < sd->generation) return EINA_FALSE;
6305 if (!((sd->homogeneous) && 6307 if ((sd->queue) ||
6306 (sd->mode == ELM_LIST_COMPRESS))) 6308 (!((sd->homogeneous) &&
6309 (sd->mode == ELM_LIST_COMPRESS))))
6307 { 6310 {
6308 if ((it->item->queued) || (!it->item->mincalcd)) 6311 if ((it->item->queued) || (!it->item->mincalcd) || (sd->queue))
6309 { 6312 {
6310 sd->show_item = it; 6313 sd->show_item = it;
6311 sd->bring_in = bring_in; 6314 sd->bring_in = bring_in;