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 @@ -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; } } }