Fix the calculation double type number.
authorJaehwan Kim <jae.hwan.kim@samsung.com>
Wed, 10 Apr 2013 11:25:35 +0000 (20:25 +0900)
committerJaehwan Kim <jae.hwan.kim@samsung.com>
Wed, 10 Apr 2013 11:25:35 +0000 (20:25 +0900)
Round off to the nearest whole number.

legacy/elementary/ChangeLog
legacy/elementary/NEWS
legacy/elementary/src/lib/elm_interface_scrollable.c

index 6a8a031..d10a4dc 100644 (file)
 
         * Add the API elm_scroller_single_direction_set/get.
         This sets how the content is scrolled.
+
+2013-04-10  Jaehwan Kim
+
+        * Fix the calculation double type number.
+        Round off to the nearest whole number.
index 5456b16..2352b5a 100644 (file)
@@ -205,6 +205,7 @@ Fixes:
    * Fix the scroller show by a page if the page size is set and the region_bring_in or region_show is called.
    * Fix elc_player crash issue.
    * Fix the region_show/region_bring_in don't have a limit at a paging movement.
+   * Fix the calculation double type number.
 
 Removals:
 
index 0710f27..06b6496 100644 (file)
@@ -34,6 +34,18 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
 
 static void _elm_pan_content_set(Evas_Object *, Evas_Object *);
 
+static double
+_round(double value, int pos)
+{
+   double temp;
+
+   temp = value * pow( 10, pos );
+   temp = floor( temp + 0.5 );
+   temp *= pow( 10, -pos );
+
+   return temp;
+}
+
 static void
 _elm_pan_update(Elm_Pan_Smart_Data *psd)
 {
@@ -928,8 +940,8 @@ _elm_scroll_scroll_bar_read_and_update(
      (sid->edje_obj, "elm.dragable.hbar", &vx, NULL);
    eo_do(sid->pan_obj, elm_obj_pan_pos_max_get(&mx, &my));
    eo_do(sid->pan_obj, elm_obj_pan_pos_min_get(&minx, &miny));
-   x = vx * (double)mx + minx;
-   y = vy * (double)my + miny;
+   x = _round(vx * (double)mx + minx, 1);
+   y = _round(vy * (double)my + miny, 1);
    eo_do(sid->pan_obj, elm_obj_pan_pos_get(&px, &py));
    eo_do(sid->pan_obj, elm_obj_pan_pos_set(x, y));
    if ((px != x) || (py != y))