summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukasz Stanislawski <lukasz.stanislawski@gmail.com>2019-02-13 13:53:25 +0100
committerLukasz Stanislawski <lukasz.stanislawski@gmail.com>2019-02-13 13:53:25 +0100
commit0f644bfd9f1726f35c2b1fab04b2444a0b1a3aec (patch)
treeaad0903b450ceb8722aa4d9e48cde079888e68a9
parentfb3a6d06e01ed147f384b0ef06914538089e4853 (diff)
downloadefl-0f644bfd9f1726f35c2b1fab04b2444a0b1a3aec.tar.gz
efl_access: do not overload invalidate method
-rw-r--r--src/lib/elementary/efl_access_object.c37
-rw-r--r--src/lib/elementary/efl_access_object.eo1
-rw-r--r--src/lib/elementary/efl_ui_widget.c2
3 files changed, 12 insertions, 28 deletions
diff --git a/src/lib/elementary/efl_access_object.c b/src/lib/elementary/efl_access_object.c
index 82175a7eed..62e4777f54 100644
--- a/src/lib/elementary/efl_access_object.c
+++ b/src/lib/elementary/efl_access_object.c
@@ -403,23 +403,6 @@ _on_rel_obj_del(void *data, const Efl_Event *event)
}
}
-static void
-efl_access_relation_set_free(Efl_Access_Object_Data *sd)
-{
- Efl_Access_Relation *rel;
- Eo *obj;
-
- EINA_LIST_FREE(sd->relations, rel)
- {
- Eina_List *l;
-
- EINA_LIST_FOREACH(rel->objects, l, obj)
- efl_event_callback_del(obj, EFL_EVENT_DEL, _on_rel_obj_del, sd);
- eina_list_free(rel->objects);
- free(rel);
- }
-}
-
EOLIAN static Eina_Bool
_efl_access_object_relationship_append(Eo *obj EINA_UNUSED, Efl_Access_Object_Data *sd, Efl_Access_Relation_Type type, const Efl_Access_Object *relation)
{
@@ -492,21 +475,25 @@ _efl_access_object_relationship_remove(Eo *obj EINA_UNUSED, Efl_Access_Object_Da
EOLIAN static void
_efl_access_object_relationships_clear(Eo *obj EINA_UNUSED, Efl_Access_Object_Data *sd)
{
- efl_access_relation_set_free(sd);
- sd->relations = NULL;
-}
+ Efl_Access_Relation *rel;
-EOLIAN void
-_efl_access_object_efl_object_invalidate(Eo *obj, Efl_Access_Object_Data *pd)
-{
- efl_access_relation_set_free(pd);
+ EINA_LIST_FREE(sd->relations, rel)
+ {
+ Eina_List *l;
- efl_invalidate(efl_super(obj, EFL_ACCESS_OBJECT_MIXIN));
+ EINA_LIST_FOREACH(rel->objects, l, obj)
+ efl_event_callback_del(obj, EFL_EVENT_DEL, _on_rel_obj_del, sd);
+ eina_list_free(rel->objects);
+ free(rel);
+ }
}
EOLIAN void
_efl_access_object_efl_object_destructor(Eo *obj, Efl_Access_Object_Data *pd)
{
+ efl_access_object_attributes_clear(obj);
+ efl_access_object_relationships_clear(obj);
+
eina_stringshare_del(pd->name);
eina_stringshare_del(pd->description);
eina_stringshare_del(pd->translation_domain);
diff --git a/src/lib/elementary/efl_access_object.eo b/src/lib/elementary/efl_access_object.eo
index d23ef155d9..6211fe2735 100644
--- a/src/lib/elementary/efl_access_object.eo
+++ b/src/lib/elementary/efl_access_object.eo
@@ -405,7 +405,6 @@ mixin Efl.Access.Object requires Efl.Object
}
implements {
Efl.Object.destructor;
- Efl.Object.invalidate;
}
events {
property,changed: string; [[Called when property has changed]]
diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c
index 6f973e4d2c..b3e10a35be 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -4059,7 +4059,6 @@ _elm_widget_item_efl_object_destructor(Eo *eo_item, Elm_Widget_Item_Data *item)
}
eina_hash_free(item->labels);
- efl_access_object_attributes_clear(eo_item);
efl_access_removed(eo_item);
EINA_MAGIC_SET(item, EINA_MAGIC_NONE);
@@ -5369,7 +5368,6 @@ _efl_ui_widget_efl_object_destructor(Eo *obj, Elm_Widget_Smart_Data *sd)
efl_event_callback_del(sd->manager.provider, EFL_UI_FOCUS_OBJECT_EVENT_MANAGER_CHANGED, _manager_changed_cb, obj);
sd->manager.provider = NULL;
}
- efl_access_object_attributes_clear(obj);
efl_access_removed(obj);
if (sd->logical.parent)
{