From e3bbe0a4fd8d5f9f84a875d54fd35f7236156ade Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Fri, 15 Feb 2019 06:34:19 +0100 Subject: [PATCH] spinbox fixes --- lv_misc/lv_math.h | 6 +++--- lv_objx/lv_spinbox.c | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lv_misc/lv_math.h b/lv_misc/lv_math.h index 1f2e402d8..a0229eb1b 100644 --- a/lv_misc/lv_math.h +++ b/lv_misc/lv_math.h @@ -19,9 +19,9 @@ extern "C" { /********************* * DEFINES *********************/ -#define LV_MATH_MIN(a,b) (ab?a:b) -#define LV_MATH_ABS(x) ((x)>0?(x):(-(x))) +#define LV_MATH_MIN(a,b) ((a) < (b) ? (a) : (b)) +#define LV_MATH_MAX(a,b) ((a) > (b) ? (a) : (b)) +#define LV_MATH_ABS(x) ((x) > 0 ? (x) : (-(x))) #define LV_TRIGO_SIN_MAX 32767 #define LV_TRIGO_SHIFT 15 /* >> LV_TRIGO_SHIFT to normalize*/ diff --git a/lv_objx/lv_spinbox.c b/lv_objx/lv_spinbox.c index 726121e59..70fac33ce 100644 --- a/lv_objx/lv_spinbox.c +++ b/lv_objx/lv_spinbox.c @@ -69,8 +69,8 @@ lv_obj_t * lv_spinbox_create(lv_obj_t * par, const lv_obj_t * copy) ext->value = 0; ext->dec_point_pos = 0; - ext->digit_count = 8; - ext->digit_padding_left = 2; + ext->digit_count = 5; + ext->digit_padding_left = 0; ext->step = 1; ext->range_max = 99999; ext->range_min = -99999; @@ -264,9 +264,10 @@ void lv_spinbox_step_next(lv_obj_t * spinbox) void lv_spinbox_step_previous(lv_obj_t * spinbox) { lv_spinbox_ext_t * ext = lv_obj_get_ext_attr(spinbox); - + int32_t step_limit; + step_limit = LV_MATH_MAX(ext->range_max, (ext->range_min < 0 ? (-ext->range_min) : ext->range_min)); int32_t new_step = ext->step * 10; - if(new_step <= ext->range_max) ext->step = new_step; + if(new_step <= step_limit) ext->step = new_step; lv_spinbox_updatevalue(spinbox); }