ddlist and roller: fix to save the selected option by encoder
This commit is contained in:
@@ -791,6 +791,7 @@ static lv_res_t release_handler(lv_obj_t * ddlist)
|
||||
/*Leave edit mode once a new item is selected*/
|
||||
lv_indev_t * indev = lv_indev_get_act();
|
||||
if(lv_indev_get_type(indev) == LV_INDEV_TYPE_ENCODER) {
|
||||
ext->sel_opt_id_ori = ext->sel_opt_id;
|
||||
lv_group_t * g = lv_obj_get_group(ddlist);
|
||||
if(lv_group_get_editing(g)) {
|
||||
lv_group_set_editing(g, false);
|
||||
@@ -820,9 +821,8 @@ static lv_res_t release_handler(lv_obj_t * ddlist)
|
||||
}
|
||||
|
||||
ext->sel_opt_id = new_opt;
|
||||
}
|
||||
|
||||
ext->sel_opt_id_ori = ext->sel_opt_id;
|
||||
}
|
||||
|
||||
lv_res_t res = lv_event_send(ddlist, LV_EVENT_VALUE_CHANGED, &ext->sel_opt_id);
|
||||
if(res != LV_RES_OK) return res;
|
||||
@@ -883,9 +883,9 @@ static void lv_ddlist_refr_size(lv_obj_t * ddlist, bool anim_en)
|
||||
|
||||
/*Force animation complete to fix highlight selection*/
|
||||
lv_ddlist_anim_finish(ddlist);
|
||||
|
||||
|
||||
} else {
|
||||
/*Run the animation only if the the size will be different*/
|
||||
if(lv_obj_get_height(ddlist) != new_height) {
|
||||
lv_anim_t a;
|
||||
a.var = ddlist;
|
||||
a.start = lv_obj_get_height(ddlist);
|
||||
@@ -902,6 +902,7 @@ static void lv_ddlist_refr_size(lv_obj_t * ddlist, bool anim_en)
|
||||
|
||||
ext->force_sel = 1; /*Keep the list item selected*/
|
||||
lv_anim_create(&a);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user