interface_scrollable: modify not to compensate scroller if manual_render is set 78/147878/2
authorWonki Kim <wonki_.kim@samsung.com>
Wed, 6 Sep 2017 03:02:19 +0000 (12:02 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Wed, 6 Sep 2017 10:19:48 +0000 (10:19 +0000)
when scroller is not stable such as a situation of resizing, page_show api work improperly
so that there was compensate logic to fix that issue.

however, when manual render mode is set, the logic work improperly.
this patch disable compensate logic if manual_render is set

@tizen_fix

Change-Id: Ibd06a13565d181145869ee076f91e574abba7772
Signed-off-by: Wonki Kim <wonki_.kim@samsung.com>
src/lib/elm_interface_scrollable.c

index d7676dd399c50a933af5de4dbb8eec58e6820af2..0ff90167b68eb3f76e36ddfe3a601214b9576610 100644 (file)
@@ -5179,6 +5179,27 @@ _elm_interface_scrollable_last_page_get(Eo *obj EINA_UNUSED, Elm_Scrollable_Smar
      }
 }
 
+static Eina_Bool
+_request_page(Evas_Object *obj, Elm_Scrollable_Smart_Interface_Data *sid, int pagenumber_h, int pagenumber_v)
+{
+   if (!obj) return EINA_FALSE;
+
+   Evas *e = evas_object_evas_get(obj);
+   if (!e) return EINA_FALSE;
+
+   Ecore_Evas *ee = ecore_evas_ecore_evas_get(e);
+   if (!ee) return EINA_FALSE;
+
+   if (!ecore_evas_manual_render_get(ee))
+     {
+        sid->requested_page.h = pagenumber_h;
+        sid->requested_page.v = pagenumber_v;
+        sid->requested_page.loop_cnt = evas_smart_objects_calculate_count_get(evas_object_evas_get(obj));
+        return EINA_TRUE;
+     }
+   return EINA_FALSE;
+}
+
 EOLIAN static void
 _elm_interface_scrollable_page_show(Eo *obj, Elm_Scrollable_Smart_Interface_Data *sid, int pagenumber_h, int pagenumber_v)
 {
@@ -5191,9 +5212,7 @@ _elm_interface_scrollable_page_show(Eo *obj, Elm_Scrollable_Smart_Interface_Data
 
    //FIXME FIXME FIXME: Would you please fix me ?
    //TIZEN_ONLY(20170227): Compensate scroller when scroller is not stable.
-   sid->requested_page.h = pagenumber_h;
-   sid->requested_page.v = pagenumber_v;
-   sid->requested_page.loop_cnt = evas_smart_objects_calculate_count_get(evas_object_evas_get(obj));
+   _request_page(obj, sid, pagenumber_h, pagenumber_v);
    //END
 
    eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get
@@ -5232,9 +5251,7 @@ _elm_interface_scrollable_page_bring_in(Eo *obj, Elm_Scrollable_Smart_Interface_
 
    //FIXME FIXME FIXME: Would you please fix me ?
    //TIZEN_ONLY(20170227): Compensate scroller when scroller is not stable.
-   sid->requested_page.h = pagenumber_h;
-   sid->requested_page.v = pagenumber_v;
-   sid->requested_page.loop_cnt = evas_smart_objects_calculate_count_get(evas_object_evas_get(obj));
+   _request_page(obj, sid, pagenumber_h, pagenumber_v);
    //END
 
    if (_elm_scroll_content_region_show_internal(obj, &x, &y, w, h))