diff options
author | Lukasz Stanislawski <l.stanislaws@samsung.com> | 2015-06-26 17:03:15 +0200 |
---|---|---|
committer | Lukasz Stanislawski <l.stanislaws@samsung.com> | 2015-06-26 17:04:06 +0200 |
commit | 640419b257f5feae2e75f376ca9e1ad30e664695 (patch) | |
tree | dbeb9d65afc339cfe0fe5612de1c8c1f17a717d3 | |
parent | c317dd289ed76f85f085db8b994218cd3f94a700 (diff) | |
download | elementary-devs/stanluk/visibility.tar.gz |
atspi: emit state changes when visibility is changeddevs/stanluk/visibility
Change-Id: Ifd69d54b3024b6234d919f78ea1939201856e471
-rw-r--r-- | src/lib/elm_widget.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index e105da434..b6f6bb8b1 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -520,9 +520,7 @@ _elm_widget_evas_object_smart_show(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUS 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); + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_VISIBLE, EINA_TRUE); if (_elm_widget_onscreen_is(obj)) elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_SHOWING, EINA_TRUE); } @@ -551,7 +549,10 @@ _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); + { + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_SHOWING, EINA_FALSE); + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_VISIBLE, EINA_FALSE); + } } EOLIAN static void @@ -1194,6 +1195,14 @@ _elm_widget_sub_object_add(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj evas_object_size_hint_display_mode_get(obj)); } + if (_elm_config->atspi_mode && eo_isa(sobj, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN)) + { + Eo *parent; + eo_do(sobj, parent = elm_interface_atspi_accessible_parent_get()); + if (obj == parent) + elm_interface_atspi_accessible_children_changed_added_signal_emit(obj, sobj); + } + end: return EINA_TRUE; } @@ -1272,8 +1281,14 @@ _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); + if (_elm_config->atspi_mode && eo_isa(sobj, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN)) + { + Eo *parent; + eo_do(sobj, parent = elm_interface_atspi_accessible_parent_get()); + if (obj == parent) + elm_interface_atspi_accessible_children_changed_del_signal_emit(obj, sobj); + } + _callbacks_del(sobj, obj); return EINA_TRUE; |