diff options
-rw-r--r-- | src/bin/test_gengrid.c | 2 | ||||
-rw-r--r-- | src/lib/elm_gengrid.c | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/bin/test_gengrid.c b/src/bin/test_gengrid.c index 5d58b5b79..e34b42eaf 100644 --- a/src/bin/test_gengrid.c +++ b/src/bin/test_gengrid.c @@ -275,7 +275,7 @@ grid_del(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED) static void grid_sel(void *data, Evas_Object *obj, void *event_info) { - printf("sel item data [%p] on grid obj [%p], pointer [%p]\n", data, obj, event_info); + printf("sel item data [%p] on grid obj [%p], pointer [%p], position [%d]\n", data, obj, event_info, elm_gengrid_item_index_get(event_info)); } static void diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index 8638a5399..87e5005f0 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -998,6 +998,7 @@ _item_place(Elm_Gen_Item *it, Eina_Bool was_realized; Elm_Gen_Item_Type *item; long items_count; + int item_pos; item = GG_IT(it); wsd = GG_IT(it)->wsd; @@ -1040,6 +1041,12 @@ _item_place(Elm_Gen_Item *it, else tch = items_row * wsd->item_height; alignh = (vh - tch) * wsd->align_y; + item_pos = items_row * cx + cy + 1; + if (item_pos != it->position) + { + it->position = item_pos; + it->position_update = EINA_TRUE; + } } else { @@ -1067,6 +1074,12 @@ _item_place(Elm_Gen_Item *it, else tcw = items_col * wsd->item_width; alignw = (vw - tcw) * wsd->align_x; + item_pos = cx + items_col * cy + 1; + if (item_pos != it->position) + { + it->position = item_pos; + it->position_update = EINA_TRUE; + } } if (it->group) |