return obj;
}
+static Eina_Bool
+_is_acceptable_leaf(Eo *obj)
+{
+ Elm_Atspi_Role role;
+ Eina_List *children;
+
+ eo_do(obj, role = elm_interface_atspi_accessible_role_get());
+ switch (role)
+ {
+ case ELM_ATSPI_ROLE_IMAGE:
+ case ELM_ATSPI_ROLE_ICON:
+ eo_do(obj, children = elm_interface_atspi_accessible_children_get());
+ if (!children) return EINA_FALSE;
+ break;
+
+ default:
+ break;
+ }
+
+ return EINA_TRUE;
+}
+
static Eo *
_accessible_at_point_top_down_get(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED, Eina_Bool screen_coords, int x, int y)
{
EINA_LIST_FOREACH(children, l2, child)
{
- if (_is_inside(child, x, y))
+ if (_is_inside(child, x, y) && _is_acceptable_leaf(child))
valid_children = eina_list_append(valid_children, child);
}
/* Get evas_object stacked at given x,y coordinates starting from top */