summaryrefslogtreecommitdiff
path: root/src/lib/elm_widget.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elm_widget.c')
-rw-r--r--src/lib/elm_widget.c38
1 files changed, 20 insertions, 18 deletions
diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c
index 5a1f6fa07..6bc1ccbe3 100644
--- a/src/lib/elm_widget.c
+++ b/src/lib/elm_widget.c
@@ -529,15 +529,6 @@ _elm_widget_evas_object_smart_show(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUS
Eina_Iterator *it;
Evas_Object *o;
- if (_elm_config->atspi_mode)
- {
- Eo *parent;
- eo_do(obj, parent = elm_interface_atspi_accessible_parent_get());
- elm_interface_atspi_accessible_children_changed_added_signal_emit(parent, obj);
- if (_elm_widget_onscreen_is(obj))
- elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_SHOWING, EINA_TRUE);
- }
-
it = evas_object_smart_iterator_new(obj);
EINA_ITERATOR_FOREACH(it, o)
{
@@ -545,6 +536,16 @@ _elm_widget_evas_object_smart_show(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUS
evas_object_show(o);
}
eina_iterator_free(it);
+
+ if (_elm_config->atspi_mode)
+ {
+ elm_interface_atspi_accessible_added(obj);
+ Eo *parent;
+ eo_do(obj, parent = elm_interface_atspi_accessible_parent_get());
+ if (parent) elm_interface_atspi_accessible_children_changed_added_signal_emit(parent, obj);
+ if (_elm_widget_onscreen_is(obj))
+ elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_SHOWING, EINA_TRUE);
+ }
}
EOLIAN static void
@@ -562,7 +563,12 @@ _elm_widget_evas_object_smart_hide(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUS
eina_iterator_free(it);
if (_elm_config->atspi_mode)
- elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_SHOWING, EINA_FALSE);
+ {
+ Eo *parent;
+ eo_do(obj, parent = elm_interface_atspi_accessible_parent_get());
+ if (parent) elm_interface_atspi_accessible_children_changed_del_signal_emit(parent, obj);
+ elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_SHOWING, EINA_FALSE);
+ }
}
EOLIAN static void
@@ -1282,8 +1288,6 @@ _elm_widget_sub_object_del(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj
sd->subobjs = eina_list_remove(sd->subobjs, sobj);
- if (_elm_config->atspi_mode)
- elm_interface_atspi_accessible_children_changed_del_signal_emit(obj, sobj);
_callbacks_del(sobj, obj);
return EINA_TRUE;
@@ -4431,7 +4435,9 @@ _elm_widget_item_eo_base_destructor(Eo *eo_item, Elm_Widget_Item_Data *item)
eina_stringshare_del(item->description);
if (_elm_config->atspi_mode)
- elm_interface_atspi_accessible_children_changed_del_signal_emit(item->widget, eo_item);
+ elm_interface_atspi_accessible_children_changed_del_signal_emit(item->widget, eo_item);
+
+ elm_interface_atspi_accessible_removed(eo_item);
EINA_MAGIC_SET(item, EINA_MAGIC_NONE);
@@ -5721,19 +5727,15 @@ _elm_widget_eo_base_constructor(Eo *obj, Elm_Widget_Smart_Data *sd)
sd->on_create = EINA_FALSE;
sd->role = ELM_ATSPI_ROLE_UNKNOWN;
-
return obj;
}
EOLIAN static void
_elm_widget_eo_base_destructor(Eo *obj, Elm_Widget_Smart_Data *sd)
{
- Eo *parent;
if (sd->description) eina_stringshare_del(sd->description);
- eo_do(obj, parent = elm_interface_atspi_accessible_parent_get());
- if (parent && !eo_destructed_is(parent))
- elm_interface_atspi_accessible_children_changed_del_signal_emit(parent, obj);
+ elm_interface_atspi_accessible_removed(obj);
eo_do_super(obj, ELM_WIDGET_CLASS, eo_destructor());
}