elm: when scroll happens due to flick, Screen-reader will not know about when the...
authorShilpa Singh <shilpa.singh@samsung.com>
Thu, 30 Nov 2017 07:32:20 +0000 (13:02 +0530)
committerJiyoun Park <jy0703.park@samsung.com>
Thu, 21 Dec 2017 10:50:19 +0000 (19:50 +0900)
     hence sending notification to screen reader for the same.

@tizen_feature

orignal patch: 8b69912d896de92cd8d72da6e6ab41fe35ecf377

Change-Id: Ifbfb75775ee50ffbe6adb8fe18c86729af62e53c

src/lib/elementary/elm_gengrid.c
src/lib/elementary/elm_genlist.c
src/lib/elementary/elm_list.c
src/lib/elementary/elm_scroller.c

index 9ceea66..48a46df 100644 (file)
@@ -3669,6 +3669,14 @@ _scroll_animate_stop_cb(Evas_Object *obj,
                         void *data EINA_UNUSED)
 {
    efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_STOP, NULL);
+   //TIZEN_ONLY: Let the screen-reader know when scroll animation ends
+   if (_elm_config->atspi_mode)
+     {
+        int x = 0, y = 0, w = 0, h = 0;
+        elm_interface_scrollable_content_region_get(obj, &x, &y, &w, &h);
+        efl_access_bounds_changed_signal_emit(obj, x, y, w, h);
+     }
+   //
 }
 
 static void
index 00a1981..e429675 100644 (file)
@@ -5419,6 +5419,14 @@ _scroll_animate_stop_cb(Evas_Object *obj,
                         void *data EINA_UNUSED)
 {
    efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_STOP, NULL);
+   //TIZEN_ONLY: Let the screen-reader know when scroll animation ends
+   if (_elm_config->atspi_mode)
+     {
+        int x = 0, y = 0, w = 0, h = 0;
+        elm_interface_scrollable_content_region_get(obj, &x, &y, &w, &h);
+        efl_access_bounds_changed_signal_emit(obj, x, y, w, h);
+     }
+   //
 }
 
 static void
index 2006b1d..dc8f333 100644 (file)
@@ -1521,6 +1521,20 @@ _edge_bottom_cb(Evas_Object *obj,
    efl_event_callback_legacy_call(obj, ELM_LIST_EVENT_EDGE_BOTTOM, NULL);
 }
 
+static void
+_scroll_animate_stop_cb(Evas_Object *obj,
+                        void *data EINA_UNUSED)
+{
+   //TIZEN_ONLY: Let the screen-reader know when scroll animation ends
+   if (_elm_config->atspi_mode)
+     {
+        int x = 0, y = 0, w = 0, h = 0;
+        elm_interface_scrollable_content_region_get(obj, &x, &y, &w, &h);
+        efl_access_bounds_changed_signal_emit(obj, x, y, w, h);
+     }
+   //
+}
+
 static Eina_Bool
 _long_press_cb(void *data)
 {
@@ -2393,6 +2407,9 @@ _elm_list_efl_canvas_group_group_add(Eo *obj, Elm_List_Data *priv)
    elm_interface_scrollable_edge_right_cb_set(obj, _edge_right_cb);
    elm_interface_scrollable_edge_top_cb_set(obj, _edge_top_cb);
    elm_interface_scrollable_edge_bottom_cb_set(obj, _edge_bottom_cb);
+   //TIZEN_ONLY: Let the screen-reader know when scroll animation ends
+   elm_interface_scrollable_animate_stop_cb_set(obj, _scroll_animate_stop_cb),
+   //
    elm_interface_scrollable_content_min_limit_cb_set(obj, _elm_list_content_min_limit_cb);
    elm_interface_scrollable_objects_set(obj, wd->resize_obj, priv->hit_rect);
 
index 08b2dd1..db85447 100644 (file)
@@ -521,6 +521,14 @@ _scroll_anim_stop_cb(Evas_Object *obj,
 {
    efl_event_callback_legacy_call
      (obj, EFL_UI_EVENT_SCROLL_ANIM_STOP, NULL);
+   //TIZEN_ONLY: Let the screen-reader know when scroll animation ends
+   if (_elm_config->atspi_mode)
+     {
+        int x = 0, y = 0, w = 0, h = 0;
+        elm_interface_scrollable_content_region_get(obj, &x, &y, &w, &h);
+        efl_access_bounds_changed_signal_emit(obj, x, y, w, h);
+     }
+   //
 }
 
 static void