static Eina_Bool g_set_geometry = EINA_FALSE;
static int g_geo_x = 0, g_geo_y = 0, g_geo_w = 0, g_geo_h = 0;
+static int find_popup = 0;
+static int skip_text = 0;
static Eina_Bool
evas_object_is_visible_get(Evas_Object *obj)
// visible check
if (!evas_object_is_visible_get(obj)) return;
+ if (find_popup) return;
+
// viewport check
evas_object_geometry_get(obj, &x, &y, &w, &h);
if (evas_object_clipees_get(obj)) is_clip = EINA_TRUE;
if (is_clip) goto next;
+ if (evas_object_type_match(obj, "elm_popup")) {
+ if (elm_object_part_text_get(obj, "title,text")) skip_text = 1;
+ eina_list_free(ret_list);
+ }
+
if (!strcmp(evas_object_type_get(obj), "text") || !strcmp(evas_object_type_get(obj), "textblock")) {
if (!parent_widget_focusable && !list_type) goto next;
+ if (skip_text) {
+ skip_text = 0;
+ return;
+ }
}
object_info = calloc(1, sizeof(Object_Info));
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, list_type);
+ if (evas_object_type_match(obj, "elm_popup")) find_popup = 1;
}
}
EINA_LIST_FREE(ecore_evas_list, ee) {
evas = ecore_evas_get(ee);
util_mgr->evas = evas;
+ find_popup = 0;
+ skip_text = 0;
ecore_wl_sync();