tch = items_row * wsd->item_height;
alignh = (vh - tch) * wsd->align_y;
item_pos = items_row * cx + cy + 1;
- if (item_pos != it->position)
+ if (item_pos != it->position && !it->position_update)
{
it->position = item_pos;
it->position_update = EINA_TRUE;
tcw = items_col * wsd->item_width;
alignw = (vw - tcw) * wsd->align_x;
item_pos = cx + items_col * cy + 1;
- if (item_pos != it->position)
+ if (item_pos != it->position && !it->position_update)
{
it->position = item_pos;
it->position_update = EINA_TRUE;
{
_item_realize(it);
if (!was_realized)
- evas_object_smart_callback_call(WIDGET(it), SIG_REALIZED, EO_OBJ(it));
+ {
+ _elm_gengrid_item_index_update(it);
+ evas_object_smart_callback_call(WIDGET(it), SIG_REALIZED, EO_OBJ(it));
+ }
if (it->parent)
{
if (wsd->horizontal)
{
_item_realize(it);
if (!was_realized)
- evas_object_smart_callback_call(WIDGET(it), SIG_REALIZED, EO_OBJ(it));
+ {
+ _elm_gengrid_item_index_update(it);
+ evas_object_smart_callback_call(WIDGET(it), SIG_REALIZED, EO_OBJ(it));
+ }
evas_object_move
(VIEW(it), GG_IT(it)->gx,
GG_IT(it)->gy);
if (!it) return NULL;
sd->items = eina_inlist_prepend(sd->items, EINA_INLIST_GET(it));
- _item_position_update(sd->items, 0);
+ _item_position_update(sd->items, 1);
if (it->group)
sd->group_items = eina_list_append(sd->group_items, it);
_elm_gengrid_item_unrealize(it, EINA_TRUE);
_item_realize(it);
_item_place(it, it->x, it->y);
+
+ _elm_gengrid_item_index_update(it);
}
EOLIAN static void