From c498b32c186633d999e354c7340220e54ff6e1ae Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Tue, 25 Feb 2020 09:15:28 +0100 Subject: [PATCH] minor fixes --- src/lv_widgets/lv_bar.c | 1 - src/lv_widgets/lv_dropdown.c | 6 +++++- src/lv_widgets/lv_msgbox.c | 2 +- src/lv_widgets/lv_msgbox.h | 2 +- src/lv_widgets/lv_roller.c | 21 ++++++++++++--------- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/lv_widgets/lv_bar.c b/src/lv_widgets/lv_bar.c index d9533099f..cbb2b8eeb 100644 --- a/src/lv_widgets/lv_bar.c +++ b/src/lv_widgets/lv_bar.c @@ -607,7 +607,6 @@ static lv_res_t lv_bar_signal(lv_obj_t * bar, lv_signal_t sign, void * param) info->result = lv_bar_get_style(bar, info->part); if(info->result != NULL) return LV_RES_OK; else return ancestor_signal(bar, sign, param); - return LV_RES_OK; } /* Include the ancient signal function */ diff --git a/src/lv_widgets/lv_dropdown.c b/src/lv_widgets/lv_dropdown.c index 4e286ba64..c7af3e366 100644 --- a/src/lv_widgets/lv_dropdown.c +++ b/src/lv_widgets/lv_dropdown.c @@ -534,6 +534,7 @@ void lv_dropdown_close(lv_obj_t * ddlist, lv_anim_enable_t anim) ext->pr_opt_id = LV_DROPDOWN_PR_NONE; if(ext->anim_time == 0 || anim == LV_ANIM_OFF) { + lv_anim_del(ddlist, list_anim); lv_obj_del(ext->page); ext->page = NULL; } else { @@ -547,7 +548,10 @@ void lv_dropdown_close(lv_obj_t * ddlist, lv_anim_enable_t anim) lv_anim_set_time(&a, ext->anim_time); lv_anim_set_ready_cb(&a, close_anim_ready); lv_anim_start(&a); - + } else { + lv_anim_del(ddlist, list_anim); + lv_obj_del(ext->page); + ext->page = NULL; } #endif } diff --git a/src/lv_widgets/lv_msgbox.c b/src/lv_widgets/lv_msgbox.c index dde4acd49..94efa6c2c 100644 --- a/src/lv_widgets/lv_msgbox.c +++ b/src/lv_widgets/lv_msgbox.c @@ -365,7 +365,7 @@ bool lv_msgbox_get_recolor(const lv_obj_t * mbox) * @return pointer to button matrix object * @remarks return value will be NULL unless `lv_msgbox_add_btns` has been already called */ -lv_obj_t * lv_msgbox_get_btnm(lv_obj_t * mbox) +lv_obj_t * lv_msgbox_get_btnmatrix(lv_obj_t * mbox) { LV_ASSERT_OBJ(mbox, LV_OBJX_NAME); diff --git a/src/lv_widgets/lv_msgbox.h b/src/lv_widgets/lv_msgbox.h index 48c0e15ba..d1b9940ee 100644 --- a/src/lv_widgets/lv_msgbox.h +++ b/src/lv_widgets/lv_msgbox.h @@ -182,7 +182,7 @@ bool lv_msgbox_get_recolor(const lv_obj_t * mbox); * @return pointer to button matrix object * @remarks return value will be NULL unless `lv_msgbox_add_btns` has been already called */ -lv_obj_t * lv_msgbox_get_btnm(lv_obj_t * mbox); +lv_obj_t * lv_msgbox_get_btnmatrix(lv_obj_t * mbox); /********************** * MACROS diff --git a/src/lv_widgets/lv_roller.c b/src/lv_widgets/lv_roller.c index a58ca4af0..a6557c370 100644 --- a/src/lv_widgets/lv_roller.c +++ b/src/lv_widgets/lv_roller.c @@ -96,10 +96,9 @@ lv_obj_t * lv_roller_create(lv_obj_t * par, const lv_obj_t * copy) lv_obj_set_signal_cb(roller, lv_roller_signal); lv_obj_set_design_cb(roller, lv_roller_design); - - /*Init the new roller roller*/ if(copy == NULL) { + lv_obj_t * label = lv_label_create(roller, NULL); lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); @@ -111,13 +110,11 @@ lv_obj_t * lv_roller_create(lv_obj_t * par, const lv_obj_t * copy) lv_obj_set_signal_cb(scrl, lv_roller_scrl_signal); - lv_obj_clean_style_list(roller, LV_PAGE_PART_SCRL); /*Use a transparent scrollable*/ lv_theme_apply(roller, LV_THEME_ROLLER); refr_height(roller); lv_roller_set_visible_row_count(roller, 4); - } /*Copy an existing roller*/ else { @@ -148,6 +145,7 @@ void lv_roller_set_options(lv_obj_t * roller, const char * options, lv_roller_mo LV_ASSERT_OBJ(roller, LV_OBJX_NAME); LV_ASSERT_STR(options); + lv_roller_ext_t * ext = lv_obj_get_ext_attr(roller); lv_obj_t * label = get_label(roller); @@ -169,7 +167,7 @@ void lv_roller_set_options(lv_obj_t * roller, const char * options, lv_roller_mo ext->mode = LV_ROLLER_MODE_INIFINITE; size_t opt_len = strlen(options) + 1; /*+1 to add '\n' after option lists*/ - char * opt_extra = lv_mem_alloc(opt_len * LV_ROLLER_INF_PAGES); + char * opt_extra = lv_mem_buf_get(opt_len * LV_ROLLER_INF_PAGES); uint8_t i; for(i = 0; i < LV_ROLLER_INF_PAGES; i++) { strcpy(&opt_extra[opt_len * i], options); @@ -177,7 +175,7 @@ void lv_roller_set_options(lv_obj_t * roller, const char * options, lv_roller_mo } opt_extra[opt_len * LV_ROLLER_INF_PAGES - 1] = '\0'; lv_label_set_text(label, opt_extra); - lv_mem_free(opt_extra); + lv_mem_buf_release(opt_extra); ext->sel_opt_id = ((LV_ROLLER_INF_PAGES / 2) + 1) * ext->option_cnt; @@ -245,6 +243,7 @@ void lv_roller_set_visible_row_count(lv_obj_t * roller, uint8_t row_cnt) lv_style_int_t line_space = lv_obj_get_style_text_line_space(roller, LV_ROLLER_PART_BG); lv_obj_set_height(roller, (lv_font_get_line_height(font) + line_space) * row_cnt); + refr_height(roller); refr_position(roller, LV_ANIM_OFF); } @@ -439,7 +438,7 @@ static lv_res_t lv_roller_signal(lv_obj_t * roller, lv_signal_t sign, void * par lv_get_style_info_t * info = param; info->result = lv_roller_get_style(roller, info->part); if(info->result != NULL) return LV_RES_OK; - return LV_RES_OK; + else return ancestor_signal(roller, sign, param); } /*Don't let the drop down list to handle the control signals. It works differently*/ @@ -516,7 +515,9 @@ static lv_res_t lv_roller_signal(lv_obj_t * roller, lv_signal_t sign, void * par } } } - + else if(sign == LV_SIGNAL_CLEANUP) { + lv_obj_clean_style_list(roller, LV_ROLLER_PART_SEL); + } return res; } @@ -835,7 +836,9 @@ static void inf_normalize(void * scrl) static lv_obj_t * get_label(const lv_obj_t * roller) { - return lv_obj_get_child(lv_page_get_scrl(roller), NULL); + lv_obj_t * scrl = lv_page_get_scrl(roller); + if(scrl == NULL) return NULL; /*The roller is being deleted, the scrollable already not exists*/ + return lv_obj_get_child(scrl, NULL); } #if LV_USE_ANIMATION