elm_atspi_relation_set_relation_append(Elm_Atspi_Relation_Set *set, Elm_Atspi_Relation_Type type, const Eo *rel_obj)
{
Elm_Atspi_Relation *rel;
- Eina_List *l;
+ Eina_List *l, *ll;
if (!eo_isa(rel_obj, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN))
return EINA_FALSE;
{
if (rel->type == type)
{
- if (!eina_list_data_find(rel->objects, rel_obj))
+ ll = eina_list_data_find_list(rel->objects, rel_obj);
+ if (!ll)
{
rel->objects = eina_list_append(rel->objects, rel_obj);
eo_do(rel_obj, eo_event_callback_add(EO_BASE_EVENT_DEL, _on_rel_obj_del, set));
}
+ else
+ {
+ rel->objects = eina_list_demote_list(rel->objects, ll);
+ }
return EINA_TRUE;
}
}