}
//TIZEN_ONLY(20160726): add API elm_atspi_accessible_can_highlight_set/get
+static Eina_Bool
+_children_highlight_check(Eo *obj)
+{
+ Eina_List *children, *l;
+ Eo *child;
+
+ if (_elm_object_accessibility_currently_highlighted_get() == (void *)obj)
+ {
+ eo_do(obj, elm_interface_atspi_component_highlight_clear());
+ return EINA_TRUE;
+ }
+
+ eo_do(obj, children = elm_interface_atspi_accessible_children_get());
+ EINA_LIST_FOREACH(children, l, child)
+ {
+ if (_children_highlight_check(child)) return EINA_TRUE;
+ }
+
+ return EINA_FALSE;
+}
+
EOLIAN static void
_elm_widget_elm_interface_atspi_accessible_can_highlight_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd, Eina_Bool can_highlight)
{
+ if (!can_highlight) _children_highlight_check(obj);
_pd->can_highlight = !!can_highlight;
}
EOLIAN static Eina_Bool
-_elm_widget_elm_interface_atspi_accessible_can_highlight_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd)
+_elm_widget_elm_interface_atspi_accessible_can_highlight_get(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED)
{
- return _pd->can_highlight;
+ return _elm_widget_highlightable(obj);
}
EOLIAN static void
_elm_widget_item_elm_interface_atspi_accessible_can_highlight_set(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *_pd, Eina_Bool can_highlight)
{
+ if (!can_highlight) _children_highlight_check(obj);
_pd->can_highlight = !!can_highlight;
}
EOLIAN static Eina_Bool
-_elm_widget_item_elm_interface_atspi_accessible_can_highlight_get(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *_pd)
+_elm_widget_item_elm_interface_atspi_accessible_can_highlight_get(Eo *obj, Elm_Widget_Item_Data *_pd EINA_UNUSED)
{
- return _pd->can_highlight;
+ return _elm_widget_item_highlightable(obj);
}
//