From 2f92b8d7f8ddbb64f9181c886ebfbb8b84348a8c Mon Sep 17 00:00:00 2001 From: Woochan Lee Date: Tue, 10 Oct 2017 19:57:59 +0900 Subject: [PATCH] Spinner: Fix can't input number in case of min value is bigger than 1. Min Max validate logic has been changed to support decimal point counting. It makes this side effect. Change-Id: Iede1a1ee48b60680387a770eaecd68a499d9eed4 --- src/lib/elm_spinner.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 421608b..8530af6 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -607,14 +607,8 @@ _min_max_validity_filter(void *data, Evas_Object *obj, char **text) insert = *text; new_str = _text_insert(str, insert, elm_entry_cursor_pos_get(obj)); if (!new_str) return; - max_len = log10(fabs(sd->val_max)) + 1; - if (sd->format_type == SPINNER_FORMAT_INT) - { - len = strlen(new_str); - if (len < max_len) goto end; - } - else if (sd->format_type == SPINNER_FORMAT_FLOAT) + if (sd->format_type == SPINNER_FORMAT_FLOAT) { point = strchr(new_str, '.'); if (point) @@ -627,6 +621,10 @@ _min_max_validity_filter(void *data, Evas_Object *obj, char **text) } } + max_len = log10(fabs(sd->val_max)) + 1; + len = strlen(new_str); + if (len < max_len) goto end; + val = strtod(new_str, NULL); if ((val < sd->val_min) || (val > sd->val_max)) *insert = 0; -- 2.7.4