diff --git a/src/core/lv_obj.c b/src/core/lv_obj.c index 79451fd5e..7ec316134 100644 --- a/src/core/lv_obj.c +++ b/src/core/lv_obj.c @@ -618,8 +618,12 @@ static void lv_obj_event(const lv_obj_class_t * class_p, lv_event_t * e) else if(c == LV_KEY_LEFT || c == LV_KEY_DOWN) { lv_obj_clear_state(obj, LV_STATE_CHECKED); } - lv_res_t res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); - if(res != LV_RES_OK) return; + + /*With Enter LV_EVENT_RELEASED will send VALUE_CHANGE event*/ + if(c != LV_KEY_ENTER) { + lv_res_t res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, NULL); + if(res != LV_RES_OK) return; + } } } else if(code == LV_EVENT_FOCUSED) { diff --git a/src/widgets/lv_switch.c b/src/widgets/lv_switch.c index 21b7608fd..0a4b55bcf 100644 --- a/src/widgets/lv_switch.c +++ b/src/widgets/lv_switch.c @@ -112,10 +112,6 @@ static void lv_switch_event(const lv_obj_class_t * class_p, lv_event_t * e) *s = LV_MAX(*s, lv_obj_calculate_ext_draw_size(obj, LV_PART_INDICATOR)); } else if(code == LV_EVENT_CLICKED) { - uint32_t v = lv_obj_get_state(obj) & LV_STATE_CHECKED ? 1 : 0; - res = lv_event_send(obj, LV_EVENT_VALUE_CHANGED, &v); - if(res != LV_RES_OK) return; - lv_obj_invalidate(obj); } else if(code == LV_EVENT_DRAW_MAIN) {