summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/test_gengrid.c2
-rw-r--r--src/lib/elm_gengrid.c13
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)