From e57e429c5cf05062d10b11226ab220576322f2fb Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Wed, 17 May 2017 17:10:28 +0900 Subject: [PATCH] atspi: Demote relation object if the object exist Change-Id: If49cc6c33228e168dbc0b6f22eeed5d7c5111a9a --- src/lib/elm_interface_atspi_accessible.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_interface_atspi_accessible.c b/src/lib/elm_interface_atspi_accessible.c index 5bd8317..6a62a57 100644 --- a/src/lib/elm_interface_atspi_accessible.c +++ b/src/lib/elm_interface_atspi_accessible.c @@ -604,7 +604,7 @@ EAPI Eina_Bool 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; @@ -613,11 +613,16 @@ elm_atspi_relation_set_relation_append(Elm_Atspi_Relation_Set *set, Elm_Atspi_Re { 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; } } -- 2.7.4