Compensate scroller when scroller is not stable 56/122856/2
authorWonki Kim <wonki_.kim@samsung.com>
Mon, 3 Apr 2017 17:10:29 +0000 (02:10 +0900)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Tue, 4 Apr 2017 08:30:02 +0000 (01:30 -0700)
When scroller is not stable, some APIs don't work properly.
this commit compensate position of scroller once scroller is getting stable

@tizen_fix

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

index c848c98272336c88c0dbde4bc3c1a0807de203e0..0c5c12db8f45247d6a17a016ca8e5bf46370d9f0 100644 (file)
@@ -4264,6 +4264,20 @@ _on_edje_resize(void *data,
    sid->h = h;
 
    current_calc = evas_smart_objects_calculate_count_get(e);
+
+   // TIZEN_ONLY(20170404): Compensate scroller when scroller is not stable
+   if ( current_calc == sid->requested_page.loop_cnt)
+     {
+        Evas_Coord x = 0, y = 0;
+        ELM_SAFE_FREE(sid->scrollto.x.animator, ecore_animator_del);
+        ELM_SAFE_FREE(sid->scrollto.y.animator, ecore_animator_del);
+        x = sid->pagesize_h * sid->requested_page.h;
+        x = (sid->is_mirrored ? _elm_scroll_x_mirrored_get(sid->obj, x) : x);
+        y = sid->pagesize_v * sid->requested_page.v;
+        _elm_scroll_wanted_coordinates_update(sid, x, y);
+     }
+   // END
+
    if (current_calc == sid->current_calc)
      {
         sid->size_count++;