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.
This commit is contained in:
Shinwoo Kim 2017-08-01 19:52:38 +09:00
parent fd52344b03
commit 391a777c01
2 changed files with 18 additions and 0 deletions

View File

@ -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 \

View File

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