jaehwan pushed a commit to branch master.
commit 2a267f1bcb2c3d93f23beaddc824a03717e40efa
Author: Jaehwan Kim <[email protected]>
Date: Wed Apr 10 20:25:35 2013 +0900
Fix the calculation double type number.
Round off to the nearest whole number.
---
ChangeLog | 5 +++++
NEWS | 1 +
src/lib/elm_interface_scrollable.c | 16 ++++++++++++++--
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6a8a031..d10a4dc 100644
--- a/ChangeLog
+++ b/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/NEWS b/NEWS
index 5456b16..2352b5a 100644
--- a/NEWS
+++ b/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/src/lib/elm_interface_scrollable.c
b/src/lib/elm_interface_scrollable.c
index 0710f27..06b6496 100644
--- a/src/lib/elm_interface_scrollable.c
+++ b/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))
--
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter