}
static void
-_obj_tree_items_exclude_unfocusable_text(Ea_Util_Mgr *util_mgr, Evas_Object *obj, Object_Info *parent, Eina_Bool parent_widget_focusable)
+_obj_tree_items_exclude_unfocusable_text(Ea_Util_Mgr *util_mgr, Evas_Object *obj, Object_Info *parent, Eina_Bool parent_widget_focusable, Eina_Bool list_type)
{
Eina_List *children = NULL, *l = NULL;
Evas_Object *child, *smart_parent_obj = NULL;
if (is_clip) goto next;
if (!strcmp(evas_object_type_get(obj), "text") || !strcmp(evas_object_type_get(obj), "textblock")) {
- if (!parent_widget_focusable) goto next;
+ if (!parent_widget_focusable && !list_type) goto next;
}
object_info = calloc(1, sizeof(Object_Info));
parent_widget_focusable = EINA_FALSE;
}
}
+ if (!list_type) {
+ if (evas_object_type_match(obj, "elm_genlist") || evas_object_type_match(obj, "elm_gengrid") || evas_object_type_match(obj, "elm_list"))
+ list_type = EINA_TRUE;
+ }
// evas object type check
if (evas_object_is_swallow_rect(obj)) {
if (!evas_object_type_match(obj, "rectangle") && !evas_object_type_match(obj, "text") && !evas_object_type_match(obj, "image")) {
children = evas_object_smart_members_get(obj);
EINA_LIST_FREE(children, child)
- _obj_tree_items_exclude_unfocusable_text(util_mgr, child, object_info, parent_widget_focusable);
+ _obj_tree_items_exclude_unfocusable_text(util_mgr, child, object_info, parent_widget_focusable, list_type);
}
}
if (val == 1) {
if (exclude_unfocusable_text) {
EINA_LIST_FREE(objs, obj)
- _obj_tree_items_exclude_unfocusable_text(util_mgr, obj, NULL, EINA_FALSE);
+ _obj_tree_items_exclude_unfocusable_text(util_mgr, obj, NULL, EINA_FALSE, EINA_FALSE);
} else {
EINA_LIST_FREE(objs, obj)
_obj_tree_items(util_mgr, obj, NULL);
if (!str1 || !str2) return NULL;
if (!strcmp(str1, "type")) {
- EINA_LIST_FOREACH(list, l, data)
- {
+ EINA_LIST_FOREACH(list, l, data) {
if (data->type)
if (!strcmp(data->type, str2)) ret_data_list = eina_list_append(ret_data_list, data);
}
} else if (!strcmp(str1, "edje_file")) {
- EINA_LIST_FOREACH(list, l, data)
- {
+ EINA_LIST_FOREACH(list, l, data) {
if (data->edje_file)
if (!strcmp(data->edje_file, str2)) ret_data_list = eina_list_append(ret_data_list, data);
}
} else if (!strcmp(str1, "group")) {
- EINA_LIST_FOREACH(list, l, data)
- {
+ EINA_LIST_FOREACH(list, l, data) {
if (data->group)
if (!strcmp(data->group, str2)) ret_data_list = eina_list_append(ret_data_list, data);
}
} else if (!strcmp(str1, "image_name")) {
- EINA_LIST_FOREACH(list, l, data)
- {
+ EINA_LIST_FOREACH(list, l, data) {
if (data->image_name)
if (!strcmp(data->image_name, str2)) ret_data_list = eina_list_append(ret_data_list, data);
}
} else if (!strcmp(str1, "color_class")) {
- EINA_LIST_FOREACH(list, l, data)
- {
+ EINA_LIST_FOREACH(list, l, data) {
if (data->color_class)
if (!strcmp(data->color_class, str2)) ret_data_list = eina_list_append(ret_data_list, data);
}
} else if (!strcmp(str1, "part_name")) {
- EINA_LIST_FOREACH(list, l, data)
- {
+ EINA_LIST_FOREACH(list, l, data) {
if (data->part_name)
if (!strcmp(data->part_name, str2)) ret_data_list = eina_list_append(ret_data_list, data);
}
} else if (!strcmp(str1, "part_state")) {
- EINA_LIST_FOREACH(list, l, data)
- {
+ EINA_LIST_FOREACH(list, l, data) {
if (data->part_state)
if (!strcmp(data->part_state, str2)) ret_data_list = eina_list_append(ret_data_list, data);
}
} else if (!strcmp(str1, "text")) {
- EINA_LIST_FOREACH(list, l, data)
- {
+ EINA_LIST_FOREACH(list, l, data) {
if (data->text)
if (!strcmp(data->text, str2)) ret_data_list = eina_list_append(ret_data_list, data);
}