elm_interface_scrollable.c: fix scroller page flick calculation roundup routine.
authorDaniel Juyung Seo <juyung.seo@samsung.com>
Tue, 3 Dec 2013 14:49:30 +0000 (23:49 +0900)
committerDaniel Juyung Seo <juyung.seo@samsung.com>
Tue, 3 Dec 2013 15:42:15 +0000 (00:42 +0900)
When the offset is not bigger than 0 && abs(offset) is not smaller than dx(or dy), round up routine could have mis-calculation bug.
It should substract one value more to get a proper round up result.
For example, when x = 1440, offset = -2160, dx = 360, x should become 720 but round up routine made it 1440.
Because it was rounded up from 1080 to 1440. It should be rounded down from 1079 to 720.

Special thanks to Hosang Kim for the help.

Signed-off-by: Daniel Juyung Seo <juyung.seo@samsung.com>
Signed-off-by: Hosang Kim <hosang12.kim@samsung.com>
legacy/elementary/src/lib/elm_interface_scrollable.c

index 2d249a5..b9b6a2e 100644 (file)
@@ -2127,7 +2127,7 @@ _elm_scroll_page_x_get(Elm_Scrollable_Smart_Interface_Data *sid,
         if (offset > 0)
           x += (abs(offset) < dx ? offset : dx);
         else
-          x += (abs(offset) < dx ? offset : -dx);
+          x += (abs(offset) < dx ? offset : -(dx + 1));
      }
 
    if (sid->pagesize_h > 0)
@@ -2167,7 +2167,7 @@ _elm_scroll_page_y_get(Elm_Scrollable_Smart_Interface_Data *sid,
         if (offset > 0)
           y += (abs(offset) < dy ? offset : dy);
         else
-          y += (abs(offset) < dy ? offset : -dy);
+          y += (abs(offset) < dy ? offset : -(dy + 1));
      }
 
    if (sid->pagesize_v > 0)