Spinner: Fix can't input number in case of min value is bigger than 1. 28/154528/2
authorWoochan Lee <wc0917.lee@samsung.com>
Tue, 10 Oct 2017 10:57:59 +0000 (19:57 +0900)
committerwoochan lee <wc0917.lee@samsung.com>
Fri, 13 Oct 2017 08:38:25 +0000 (08:38 +0000)
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

index 421608b..8530af6 100644 (file)
@@ -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;