From d4a9685d42d51920c4a32f6c8c8e0c9e76f82d4d Mon Sep 17 00:00:00 2001 From: Lukasz Wlazly Date: Fri, 17 Nov 2017 13:52:01 +0100 Subject: [PATCH] elm: Accessibility Highlight frame support for items Signed-off-by: Patryk Kaczmarek Conflicts: src/lib/elm_main.c src/lib/elm_widget.c src/lib/elm_widget_item.eo src/lib/elm_win.c original patch: c325356997d58ed9068fe2b55b612db48e670cde @tizen_fix Change-Id: I2c739bb5180588550fffb6f0bd7fe216ed6b7368 --- src/lib/elementary/elm_widget.c | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index fbc523d..e79b822 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -5615,14 +5615,36 @@ _elm_widget_item_efl_access_component_focus_grab(Eo *obj EINA_UNUSED, Elm_Widget EOLIAN static Eina_Bool _elm_widget_item_efl_access_component_highlight_grab(Eo *obj, Elm_Widget_Item_Data *sd) { - Evas_Object *win = elm_widget_top_get(sd->widget); - if (win && efl_isa(win, EFL_UI_WIN_CLASS)) + // TIZEN_ONLY(20171117) Accessibility Highlight frame support for items + // Evas_Object *win = elm_widget_top_get(sd->widget); + // if (win && efl_isa(win, EFL_UI_WIN_CLASS)) + // { + // elm_object_accessibility_highlight_set(sd->view, EINA_TRUE); + // efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_HIGHLIGHTED, EINA_TRUE); + // return EINA_TRUE; + // } + // return EINA_FALSE; + + if (!obj) return EINA_FALSE; + + Evas_Object *o = elm_object_parent_widget_get(sd->view); + if (_elm_scrollable_is(o)) { - elm_object_accessibility_highlight_set(sd->view, EINA_TRUE); - efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_HIGHLIGHTED, EINA_TRUE); - return EINA_TRUE; + Evas_Coord bx, by, bw, bh; + Evas_Coord x, y, w, h; + Evas_Object *w1 = elm_object_parent_widget_get(o); + evas_object_geometry_get(sd->view, &x, &y, &w, &h); + evas_object_geometry_get(o, &bx, &by, &bw, &bh); + x -= bx; + y -= by; + elm_interface_scrollable_content_region_show(w1, x, y, w, h); } - return EINA_FALSE; + + elm_object_accessibility_highlight_set(sd->view, EINA_TRUE); + efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_HIGHLIGHTED, EINA_TRUE); + + return EINA_TRUE; + // } EOLIAN static Eina_Bool -- 2.7.4