static Eina_Bool
_value_set(Evas_Object *obj,
- double new_val)
+//TIZEN_ONLY(20180427): Spinner value adjust when round enabled.
+ //double new_val)
+ double val, double changed)
+//
{
+ //TIZEN_ONLY(20180427): Spinner value adjust when round enabled.
+ double new_val;
+ //
+
ELM_SPINNER_DATA_GET(obj, sd);
if (sd->round > 0)
- new_val = sd->val_base +
- (double)((((int)(new_val - sd->val_base)) / sd->round) * sd->round);
+ {
+ //TIZEN_ONLY(20180427): Spinner value adjust when round enabled.
+ //new_val = sd->val_base +
+ // (double)((((int)(new_val - sd->val_base)) / sd->round) * sd->round);
+ //Spin value changed by entry input.
+ if (changed != 0)
+ new_val = sd->val_base +
+ (double)((((int)((val + changed) - sd->val_base)) / sd->round) * sd->round);
+ else
+ new_val = sd->val_base +
+ (double)((((int)(val - sd->val_base + (sd->round / 2.0))) / sd->round) * sd->round);
+ //
+ }
+ else
+ new_val = val + changed;
if (sd->wrap)
{
if (!strncmp(style, "vertical", 8)) delta *= -1;
/* If we are on rtl mode, change the delta to be negative on such changes */
if (elm_widget_mirrored_get(obj)) delta *= -1;
- if (_value_set(data, sd->val + delta)) _label_write(data);
+ //TIZEN_ONLY(20180427): Spinner value adjust when round enabled.
+ //if (_value_set(data, sd->val + delta)) _label_write(data);
+ if (_value_set(data, sd->val, delta)) _label_write(data);
+ //
sd->dragging = 1;
}
val = strtod(str, &end);
if (((*end != '\0') && (!isspace(*end))) || (fabs(val - sd->val) < DBL_EPSILON)) return;
- //TIZEN_ONLY(20180321): Spinner value adjust when round enabled.
- if (sd->round > 0)
- val = sd->val_base + (double)((((int)(val - sd->val_base + (sd->round / 2.0))) / sd->round) * sd->round);
- //
+ //TIZEN_ONLY(20180427): Spinner value adjust when round enabled.
+ //elm_spinner_value_set(obj, val);
- elm_spinner_value_set(obj, val);
-
- eo_do(obj, eo_event_callback_call(ELM_SPINNER_EVENT_CHANGED, NULL));
- ecore_timer_del(sd->delay_change_timer);
- sd->delay_change_timer = ecore_timer_add(ELM_SPINNER_DELAY_CHANGE_TIME,
- _delay_change_timer_cb, obj);
+ //efl_event_callback_legacy_call(obj, ELM_SPINNER_EVENT_CHANGED, NULL);
+ //ecore_timer_del(sd->delay_change_timer);
+ //sd->delay_change_timer = ecore_timer_add(ELM_SPINNER_DELAY_CHANGE_TIME,
+ // _delay_change_timer_cb, obj);
+ if (_value_set(obj, val, 0.0)) _label_write(obj);
+ //
}
static int
if (sd->spin_timer)
ecore_timer_interval_set(sd->spin_timer, sd->interval);
*/
- if (_value_set(data, sd->val + real_speed)) _label_write(data);
+ //TIZEN_ONLY(20180427): Spinner value adjust when round enabled.
+ //if (_value_set(data, sd->val + real_speed)) _label_write(data);
+ if (_value_set(data, sd->val, real_speed)) _label_write(data);
+ //
return ECORE_CALLBACK_RENEW;
}
{
if (sd->val == val) return;
- sd->val = val;
+ //TIZEN_ONLY(20180427): Spinner value adjust when round enabled.
+ //sd->val = val;
+ sd->val = (sd->round <= 0) ? val : sd->val_base +
+ (double)((((int)(val - sd->val_base + (sd->round / 2.0))) / sd->round) * sd->round);
+ //
+
sd->val_updated = EINA_FALSE;
if (sd->val < sd->val_min)