atspi: access overrides Accessible.state_set.get 79/141779/3
authorShinwoo Kim <cinoo.kim@samsung.com>
Tue, 1 Aug 2017 10:22:03 +0000 (19:22 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Wed, 2 Aug 2017 10:54:06 +0000 (10:54 +0000)
The elm_access a widget makes primitive object accessible. If a primitive
object is not visible, then the elm_access should NOT have state VISIBLE and
SHOWING. From now the elm_access is checking visibility of primitive object.

Change-Id: I27c2f29d3346e03329784872281e4734ec753160

src/lib/elm_access.c
src/lib/elm_access.eo

index 2c6de2ee40d44540e01dad35569444cd1c8f1b07..2d03d448ace13b46a48d1edb37da2b294134d928 100644 (file)
@@ -1495,6 +1495,22 @@ _elm_access_elm_interface_atspi_accessible_description_get(Eo *obj, void *pd EIN
    return elm_access_info_get(obj, ELM_ACCESS_CONTEXT_INFO);
 }
 
+EOLIAN static Elm_Atspi_State_Set
+_elm_access_elm_interface_atspi_accessible_state_set_get(Eo *obj, void *pd EINA_UNUSED)
+{
+   Elm_Atspi_State_Set ret;
+   eo_do_super(obj, ELM_ACCESS_CLASS, ret = elm_interface_atspi_accessible_state_set_get());
+
+   Elm_Access_Info *info = _elm_access_info_get(obj);
+   if (info && !evas_object_visible_get(info->part_object))
+     {
+        STATE_TYPE_UNSET(ret, ELM_ATSPI_STATE_VISIBLE);
+        STATE_TYPE_UNSET(ret, ELM_ATSPI_STATE_SHOWING);
+     }
+
+   return ret;
+}
+
 EOLIAN static Eina_Bool
 _elm_access_elm_interface_atspi_component_highlight_grab(Eo *obj, void *pd EINA_UNUSED)
 {
index 6214acc4c18c2ab89a700ebe34eeb9997208582a..02a09652a509233113d5ecba1b71d8e6ae5b3ede 100644 (file)
@@ -10,6 +10,7 @@ eo_prefix: elm_obj_access;
       Elm.Widget.on_focus;
       Elm_Interface_Atspi_Accessible.name.get;
       Elm_Interface_Atspi_Accessible.description.get;
+      Elm_Interface_Atspi_Accessible.state_set.get;
       Elm_Interface_Atspi_Component.highlight_grab;
       Elm_Interface_Atspi_Component.highlight_clear;
       Elm_Interface_Atspi_Widget_Action.elm_actions.get;