Eina_List *item_list = NULL, *l = NULL;
Elm_Object_Item *item = NULL;
ELM_GENGRID_DATA_GET(obj, sd);
+ Eina_Bool search_next = EINA_FALSE;
if (!it) return NULL;
evas_object_geometry_get(sd->pan_obj, &vx, &vy, &vw, &vh);
evas_object_geometry_get(VIEW(it), &ix, &iy, &iw, &ih); // FIXME: check if the item is realized or not
+ item_list = elm_gengrid_realized_items_get(obj);
+
if (ELM_RECTS_INCLUDE(vx, vy, vw, vh, ix, iy, iw, ih))
- return it;
+ {
+ if (!elm_object_item_disabled_get(it))
+ return it;
+ else
+ search_next = EINA_TRUE;
+ }
- item_list = elm_gengrid_realized_items_get(obj);
- if (iy < vy)
+ if ((iy < vy) || search_next)
{
EINA_LIST_FOREACH(item_list, l, item)
{
evas_object_geometry_get(VIEW(item), &cx, &cy, &cw, &ch);
- if (ELM_RECTS_INCLUDE(vx, vy, vw, vh, cx, cy, cw, ch))
+ if (ELM_RECTS_INCLUDE(vx, vy, vw, vh, cx, cy, cw, ch) &&
+ !elm_object_item_disabled_get(item))
return item;
}
}
EINA_LIST_REVERSE_FOREACH(item_list, l, item)
{
evas_object_geometry_get(VIEW(item), &cx, &cy, &cw, &ch);
- if (ELM_RECTS_INCLUDE(vx, vy, vw, vh, cx, cy, cw, ch))
+ if (ELM_RECTS_INCLUDE(vx, vy, vw, vh, cx, cy, cw, ch) &&
+ !elm_object_item_disabled_get(item))
return item;
}
}