summaryrefslogtreecommitdiff
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
parent4223a4b5ee1385905014d69e7e1a0efdd80afa12 (diff)
downloadelementary-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.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)
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;