From 0337f1ad68e4dcc20673f1034a8306ce4165bd78 Mon Sep 17 00:00:00 2001 From: Jaehwan Kim Date: Wed, 10 Apr 2013 20:25:35 +0900 Subject: [PATCH] Fix the calculation double type number. Round off to the nearest whole number. --- legacy/elementary/ChangeLog | 5 +++++ legacy/elementary/NEWS | 1 + .../src/lib/elm_interface_scrollable.c | 16 ++++++++++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index 6a8a0319f8..d10a4dcbbb 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -1242,3 +1242,8 @@ * 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. diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index 5456b1683b..2352b5ab36 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -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: diff --git a/legacy/elementary/src/lib/elm_interface_scrollable.c b/legacy/elementary/src/lib/elm_interface_scrollable.c index 0710f27042..06b6496f20 100644 --- a/legacy/elementary/src/lib/elm_interface_scrollable.c +++ b/legacy/elementary/src/lib/elm_interface_scrollable.c @@ -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))