fixes because of sending LV_SIGNAL_PRESSED in LV_GROUP_KEY_ENTER press
This commit is contained in:
@@ -369,7 +369,7 @@ static void indev_keypad_proc(lv_indev_t * i, lv_indev_data_t * data)
|
|||||||
i->proc.last_state == LV_INDEV_STATE_REL) {
|
i->proc.last_state == LV_INDEV_STATE_REL) {
|
||||||
i->proc.pr_timestamp = lv_tick_get();
|
i->proc.pr_timestamp = lv_tick_get();
|
||||||
lv_obj_t * focused = lv_group_get_focused(i->group);
|
lv_obj_t * focused = lv_group_get_focused(i->group);
|
||||||
if(focused) {
|
if(focused && data->key == LV_GROUP_KEY_ENTER) {
|
||||||
focused->signal_func(focused, LV_SIGNAL_PRESSED, indev_act);
|
focused->signal_func(focused, LV_SIGNAL_PRESSED, indev_act);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -674,10 +674,11 @@ static lv_res_t lv_btn_signal(lv_obj_t * btn, lv_signal_t sign, void * param)
|
|||||||
} else if(c == LV_GROUP_KEY_ENTER) {
|
} else if(c == LV_GROUP_KEY_ENTER) {
|
||||||
if(!ext->long_pr_action_executed) {
|
if(!ext->long_pr_action_executed) {
|
||||||
if(lv_btn_get_toggle(btn)) {
|
if(lv_btn_get_toggle(btn)) {
|
||||||
if(state == LV_BTN_STATE_REL) lv_btn_set_state(btn, LV_BTN_STATE_TGL_REL);
|
if(state == LV_BTN_STATE_REL || state == LV_BTN_STATE_PR) lv_btn_set_state(btn, LV_BTN_STATE_TGL_REL);
|
||||||
else if(state == LV_BTN_STATE_PR) lv_btn_set_state(btn, LV_BTN_STATE_TGL_PR);
|
else if(state == LV_BTN_STATE_TGL_REL || state == LV_BTN_STATE_TGL_PR) lv_btn_set_state(btn, LV_BTN_STATE_REL);
|
||||||
else if(state == LV_BTN_STATE_TGL_REL) lv_btn_set_state(btn, LV_BTN_STATE_REL);
|
} else {
|
||||||
else if(state == LV_BTN_STATE_TGL_PR) lv_btn_set_state(btn, LV_BTN_STATE_PR);
|
if(state == LV_BTN_STATE_REL || state == LV_BTN_STATE_PR) lv_btn_set_state(btn, LV_BTN_STATE_REL);
|
||||||
|
else if(state == LV_BTN_STATE_TGL_REL || state == LV_BTN_STATE_TGL_PR) lv_btn_set_state(btn, LV_BTN_STATE_TGL_REL);
|
||||||
}
|
}
|
||||||
if(ext->actions[LV_BTN_ACTION_CLICK] && state != LV_BTN_STATE_INA) {
|
if(ext->actions[LV_BTN_ACTION_CLICK] && state != LV_BTN_STATE_INA) {
|
||||||
res = ext->actions[LV_BTN_ACTION_CLICK](btn);
|
res = ext->actions[LV_BTN_ACTION_CLICK](btn);
|
||||||
|
|||||||
@@ -490,11 +490,13 @@ static lv_res_t lv_slider_signal(lv_obj_t * slider, lv_signal_t sign, void * par
|
|||||||
}
|
}
|
||||||
} else if(sign == LV_SIGNAL_CONTROLL) {
|
} else if(sign == LV_SIGNAL_CONTROLL) {
|
||||||
char c = *((char *)param);
|
char c = *((char *)param);
|
||||||
|
|
||||||
|
ext->drag_value = LV_SLIDER_NOT_PRESSED;
|
||||||
|
|
||||||
#if USE_LV_GROUP
|
#if USE_LV_GROUP
|
||||||
lv_group_t * g = lv_obj_get_group(slider);
|
lv_group_t * g = lv_obj_get_group(slider);
|
||||||
bool editing = lv_group_get_editing(g);
|
bool editing = lv_group_get_editing(g);
|
||||||
lv_hal_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act());
|
lv_hal_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act());
|
||||||
|
|
||||||
/*Encoders need special handling*/
|
/*Encoders need special handling*/
|
||||||
if(indev_type == LV_INDEV_TYPE_ENCODER && c == LV_GROUP_KEY_ENTER) {
|
if(indev_type == LV_INDEV_TYPE_ENCODER && c == LV_GROUP_KEY_ENTER) {
|
||||||
if(editing) lv_group_set_editing(g, false);
|
if(editing) lv_group_set_editing(g, false);
|
||||||
|
|||||||
Reference in New Issue
Block a user