aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukasz Stanislawski <l.stanislaws@samsung.com>2015-06-26 17:03:15 +0200
committerLukasz Stanislawski <l.stanislaws@samsung.com>2015-06-26 17:04:06 +0200
commit640419b257f5feae2e75f376ca9e1ad30e664695 (patch)
treedbeb9d65afc339cfe0fe5612de1c8c1f17a717d3
parentWayland cnp: Fix const qualifier discarding following eolian const fixes. (diff)
downloadelementary-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.c27
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;