From 11308f51c3b486eb30e4dabb383821e3e7566b6c Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Fri, 8 Dec 2017 16:07:33 +0530 Subject: [PATCH] elm: [atspi]check if highlighted object's parent hidden If an object is content of a layout (parent), and user calls evas_object_hide for the layout, then the _elm_widget_evas_object_smart_hide for the object (child) is not called. So it is not possible to know object's changed state on the AT-client side. This patch set will check parents of highlighted object in _elm_widget_evas_object_smart_hide, and emit state changed signal if one of parents is equal to the hiding object. @tizen_fix orignal patch: afcec90361769e19f6d6dc005aa35daeaa74b8ec Change-Id: I45d7d71c96e1a2645c93f2d1012067f880d6a99d --- src/lib/elementary/elm_widget.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index 9d2541d..19013bb 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -891,6 +891,25 @@ _elm_widget_efl_gfx_visible_set(Eo *obj, Elm_Widget_Smart_Data *pd, Eina_Bool vi } else { + //TIZEN_ONLY(20161223) check if the parent of highlighted object is hide + Eo *highlighted_obj; + highlighted_obj = _elm_object_accessibility_currently_highlighted_get(); + if (highlighted_obj && highlighted_obj != obj) + { + Eo *parent; + parent = efl_access_parent_get(highlighted_obj); + while (parent) + { + if (parent == obj) + { + efl_access_state_changed_signal_emit(highlighted_obj, EFL_ACCESS_STATE_SHOWING, EINA_FALSE); + efl_access_component_highlight_clear(highlighted_obj); + break; + } + parent = efl_access_parent_get(parent); + } + } + // efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_SHOWING, EINA_FALSE); } } -- 2.7.4