elm: [ATSPI] Modify clear only specified objects when called highlight_clear
authorJunsuChoi <jsuya.choi@samsung.com>
Mon, 11 Dec 2017 09:03:23 +0000 (14:33 +0530)
committerJiyoun Park <jy0703.park@samsung.com>
Thu, 21 Dec 2017 13:02:35 +0000 (22:02 +0900)
In the past, highlight clear cleared all highlight in the window. When a user calls
highlight_grab manually, highlight_clear on highlighted object causes all highlight
to disappear. So we modify it to clear the object specified in highlight_clear.

@tizen_fix

orignal patch: 52e6f940c73b6d12b0a8866821ef32badb724f66

Change-Id: Ibbe8570ece706f68bef3a6e647c6cfb204b145d4

src/lib/elementary/efl_ui_win.c
src/lib/elementary/elm_main.c
src/lib/elementary/elm_widget.h

index bd261de..815f2e9 100644 (file)
@@ -8729,22 +8729,21 @@ static void _elm_win_accessibility_highlight_callbacks_del(Efl_Ui_Win_Data *sd)
 }
 
 void
-_elm_win_object_set_accessibility_highlight(Evas_Object *win, Evas_Object *obj)
+_elm_win_object_set_accessibility_highlight(Evas_Object *win, Evas_Object *obj, Eina_Bool visible)
 {
    if (!win) return;
    ELM_WIN_DATA_GET(win, sd);
-   _elm_win_accessibility_highlight_hide(sd->obj);
-   // TIZEN_ONLY(20171117) Accessibility frame follows parent item on scroll event
-   _elm_win_accessibility_highlight_callbacks_del(sd);
-   //
-   if (obj)
+   if (visible || sd->accessibility_highlight.cur.target == obj)
      {
-         _elm_win_accessibility_highlight_init(sd, obj);
-         _elm_win_accessibility_highlight_show(win);
+        _elm_win_accessibility_highlight_hide(sd->obj);
+        // TIZEN_ONLY(20171117) Accessibility frame follows parent item on scroll event
+        _elm_win_accessibility_highlight_callbacks_del(sd);
+        //
      }
-   else
+   if (visible)
      {
-         _elm_win_accessibility_highlight_hide(win);
+         _elm_win_accessibility_highlight_init(sd, obj);
+         _elm_win_accessibility_highlight_show(win);
      }
 }
 //
index a24fe87..b543420 100644 (file)
@@ -2177,19 +2177,16 @@ elm_object_accessibility_highlight_set(Evas_Object *obj, Eina_Bool visible)
           _accessibility_currently_highlighted_obj = obj;
      }
 
-   if (visible)
+   if (elm_widget_access_highlight_in_theme_get(obj))
      {
-       if (elm_widget_access_highlight_in_theme_get(obj))
+        if (visible)
           elm_widget_signal_emit(obj, "elm,action,access_highlight,show", "elm");
-       else
-          _elm_win_object_set_accessibility_highlight(win, obj);
+        else
+           elm_widget_signal_emit(obj, "elm,action,access_highlight,hide", "elm");
      }
    else
      {
-       if (elm_widget_access_highlight_in_theme_get(obj))
-          elm_widget_signal_emit(obj, "elm,action,access_highlight,hide", "elm");
-       else
-          _elm_win_object_set_accessibility_highlight(win, NULL);
+        _elm_win_object_set_accessibility_highlight(win, obj, visible);
      }
 
    // if (!visible && (obj == _elm_win_accessibility_highlight_get(win)))
index 1cc36f7..ab278d2 100644 (file)
@@ -562,7 +562,7 @@ void                  _elm_win_focus_auto_hide(Evas_Object *obj);
 // void                  _elm_win_accessibility_highlight_set(Evas_Object *win, Evas_Object *obj);
 // Evas_Object          *_elm_win_accessibility_highlight_get(Evas_Object *win);
 // //
-void                  _elm_win_object_set_accessibility_highlight(Evas_Object *win, Evas_Object *obj);
+void                  _elm_win_object_set_accessibility_highlight(Evas_Object *win, Evas_Object *obj, Eina_Bool visible);
 // TIZEN_ONLY(20171114): atspi: expose highlight information on atspi
 void                 *_elm_object_accessibility_currently_highlighted_get();
 //