diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index 86644eec3a..ac49f51b12 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -1257,7 +1257,7 @@ extern "C" { * * @param obj The parent object whose children to look at * @param name The name of the child to find - * @param recurse Set to EINA_TRUE if you should recurse into children of children + * @param recurse Set to thge maximum number of levels to recurse (0 == none, 1 is only look at 1 level of children etc.) * @return The found object of that name, or NULL if none is found * * This function searches the children (or recursively children of @@ -1265,13 +1265,14 @@ extern "C" { * the name of @p name. If the child is found the object is returned, or * NULL is returned. You can set the name of an object with * evas_object_name_set(). If the name is not unique within the child - * objects (or the tree is @p recurse is set to EINA_TRUE) then it is + * objects (or the tree is @p recurse is greater than 0) then it is * undefined as to which child of that name is returned, so ensure the name - * is unique amongst children. + * is unique amongst children. If recurse is set to -1 it will recurse + * without limit. * * @ingroup General */ - EAPI Evas_Object *elm_object_name_find(const Evas_Object *obj, const char *name, Eina_Bool recurse); + EAPI Evas_Object *elm_object_name_find(const Evas_Object *obj, const char *name, int recurse); /** * Get the widget object's handle which contains a given item diff --git a/legacy/elementary/src/lib/elm_main.c b/legacy/elementary/src/lib/elm_main.c index a8b17dfba8..86c5d4b544 100644 --- a/legacy/elementary/src/lib/elm_main.c +++ b/legacy/elementary/src/lib/elm_main.c @@ -2090,7 +2090,7 @@ elm_object_access_info_set(Evas_Object *obj, const char *txt) } EAPI Evas_Object * -elm_object_name_find(const Evas_Object *obj, const char *name, Eina_Bool recurse) +elm_object_name_find(const Evas_Object *obj, const char *name, int recurse) { return elm_widget_name_find(obj, name, recurse); } diff --git a/legacy/elementary/src/lib/elm_widget.c b/legacy/elementary/src/lib/elm_widget.c index a7b9fcd037..afe119e639 100644 --- a/legacy/elementary/src/lib/elm_widget.c +++ b/legacy/elementary/src/lib/elm_widget.c @@ -2638,44 +2638,43 @@ elm_widget_type_check(const Evas_Object *obj, } static Evas_Object * -_widget_name_find(const Evas_Object *obj, const char *name, Eina_Bool recurse) +_widget_name_find(const Evas_Object *obj, const char *name, int recurse) { Eina_List *l; Evas_Object *child; const char *s; INTERNAL_ENTRY NULL; - void **childlist = NULL; if (!_elm_widget_is(obj)) return NULL; if (sd->resize_obj) { s = evas_object_name_get(sd->resize_obj); if ((s) && (!strcmp(s, name))) return sd->resize_obj; - if ((recurse) && - ((child = _widget_name_find(sd->resize_obj, name, recurse)))) + if ((recurse != 0) && + ((child = _widget_name_find(sd->resize_obj, name, recurse - 1)))) return child; } EINA_LIST_FOREACH(sd->subobjs, l, child) { s = evas_object_name_get(child); if ((s) && (!strcmp(s, name))) return child; - if ((recurse) && - ((child = _widget_name_find(child, name, recurse)))) + if ((recurse != 0) && + ((child = _widget_name_find(child, name, recurse - 1)))) return child; } if (sd->hover_obj) { s = evas_object_name_get(sd->hover_obj); if ((s) && (!strcmp(s, name))) return sd->hover_obj; - if ((recurse) && - ((child = _widget_name_find(sd->hover_obj, name, recurse)))) + if ((recurse != 0) && + ((child = _widget_name_find(sd->hover_obj, name, recurse - 1)))) return child; } return NULL; } EAPI Evas_Object * -elm_widget_name_find(const Evas_Object *obj, const char *name, Eina_Bool recurse) +elm_widget_name_find(const Evas_Object *obj, const char *name, int recurse) { API_ENTRY return NULL; if (!name) return NULL; diff --git a/legacy/elementary/src/lib/elm_widget.h b/legacy/elementary/src/lib/elm_widget.h index 4b185a996e..edfbacf117 100644 --- a/legacy/elementary/src/lib/elm_widget.h +++ b/legacy/elementary/src/lib/elm_widget.h @@ -412,7 +412,7 @@ EAPI void elm_widget_type_register(const char **ptr); EAPI void elm_widget_type_unregister(const char **ptr); EAPI Eina_Bool elm_widget_is_check(const Evas_Object *obj); EAPI Eina_Bool elm_widget_type_check(const Evas_Object *obj, const char *type, const char *func); -EAPI Evas_Object *elm_widget_name_find(const Evas_Object *obj, const char *name, Eina_Bool recurse); +EAPI Evas_Object *elm_widget_name_find(const Evas_Object *obj, const char *name, int recurse); EAPI Eina_List *elm_widget_stringlist_get(const char *str); EAPI void elm_widget_stringlist_free(Eina_List *list); EAPI void elm_widget_focus_hide_handle(Evas_Object *obj);