kimcinoo pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=391a777c0164c118e5b7de846f9ad8835f50794a

commit 391a777c0164c118e5b7de846f9ad8835f50794a
Author: Shinwoo Kim <[email protected]>
Date:   Tue Aug 1 19:52:38 2017 +0900

    elementary: access overrides Accessible.state_set.get
    
    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.
---
 src/lib/elementary/elm_access.c  | 17 +++++++++++++++++
 src/lib/elementary/elm_access.eo |  1 +
 2 files changed, 18 insertions(+)

diff --git a/src/lib/elementary/elm_access.c b/src/lib/elementary/elm_access.c
index 824ae090ca..88d06bed59 100644
--- a/src/lib/elementary/elm_access.c
+++ b/src/lib/elementary/elm_access.c
@@ -2,6 +2,7 @@
 # include "elementary_config.h"
 #endif
 
+#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
 #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
 
 #include <Elementary.h>
@@ -1507,6 +1508,22 @@ 
_elm_access_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UNUSE
    return &atspi_actions[0];
 }
 
+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;
+   ret = elm_interface_atspi_accessible_state_set_get(efl_super(obj, 
ELM_ACCESS_CLASS));
+
+   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;
+}
+
 /* Internal EO APIs and hidden overrides */
 
 #define ELM_ACCESS_EXTRA_OPS \
diff --git a/src/lib/elementary/elm_access.eo b/src/lib/elementary/elm_access.eo
index fac266785f..5c8fb31823 100644
--- a/src/lib/elementary/elm_access.eo
+++ b/src/lib/elementary/elm_access.eo
@@ -10,5 +10,6 @@ class Elm.Access (Elm.Widget, 
Elm.Interface.Atspi_Widget_Action)
       Elm.Widget.activate;
       Elm.Widget.on_focus;
       Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
+      Elm.Interface.Atspi_Accessible.state_set { get; }
    }
 }

-- 


Reply via email to