}
static Eina_Bool
-_eobj_op_internal(Eobj *obj, Eobj_Op op, va_list *p_list)
+_eobj_op_internal(Eobj *obj, Eobj_Op op, va_list *p_list, Eina_Bool try_comp)
{
const Eobj_Class *klass;
Eina_Bool ret = EINA_FALSE;
klass = _eobj_kls_itr_next(obj);
}
- /* Try composite objects */
+ /* Try composite objects only if it was requested. */
+ if (try_comp)
{
Eina_List *itr;
Eobj *emb_obj;
EINA_LIST_FOREACH(obj->composite_objects, itr, emb_obj)
{
- if (_eobj_op_internal(emb_obj, op, p_list))
+ if (_eobj_op_internal(emb_obj, op, p_list, EINA_TRUE))
{
ret = EINA_TRUE;
goto end;
op = va_arg(*p_list, Eobj_Op);
while (op)
{
- if (!_eobj_op_internal(obj, op, p_list))
+ if (!_eobj_op_internal(obj, op, p_list, EINA_TRUE))
{
const Eobj_Op_Description *desc = _eobj_op_id_desc_get(op);
const char *_id_name = (desc) ? desc->name : NULL;
/* Advance the kls itr. */
obj_klass = _eobj_kls_itr_next(obj);
- if (!_eobj_op_internal(obj, op, &p_list))
+ if (!_eobj_op_internal(obj, op, &p_list, EINA_FALSE))
{
const Eobj_Op_Description *desc = _eobj_op_id_desc_get(op);
const char *_id_name = (desc) ? desc->name : NULL;