lv_ta: fix label auto size on lv_ta size change
This commit is contained in:
@@ -1208,6 +1208,21 @@ static lv_res_t lv_ta_scrollable_signal(lv_obj_t * scrl, lv_signal_t sign, void
|
|||||||
lv_coord_t font_h = lv_font_get_height(style_label->text.font);
|
lv_coord_t font_h = lv_font_get_height(style_label->text.font);
|
||||||
scrl->ext_size = LV_MATH_MAX(scrl->ext_size, style_label->text.line_space + font_h);
|
scrl->ext_size = LV_MATH_MAX(scrl->ext_size, style_label->text.line_space + font_h);
|
||||||
}
|
}
|
||||||
|
else if(sign == LV_SIGNAL_CORD_CHG) {
|
||||||
|
/*Set the label width according to the text area width*/
|
||||||
|
if(ext->label) {
|
||||||
|
if(lv_obj_get_width(ta) != lv_area_get_width(param) ||
|
||||||
|
lv_obj_get_height(ta) != lv_area_get_height(param)) {
|
||||||
|
lv_obj_t * scrl = lv_page_get_scrl(ta);
|
||||||
|
lv_style_t * style_scrl = lv_obj_get_style(scrl);
|
||||||
|
lv_obj_set_width(ext->label, lv_obj_get_width(scrl) - 2 * style_scrl->body.padding.hor);
|
||||||
|
lv_obj_set_pos(ext->label, style_scrl->body.padding.hor, style_scrl->body.padding.ver);
|
||||||
|
lv_label_set_text(ext->label, NULL); /*Refresh the label*/
|
||||||
|
|
||||||
|
refr_cursor_area(ta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else if(sign == LV_SIGNAL_PRESSED) {
|
else if(sign == LV_SIGNAL_PRESSED) {
|
||||||
update_cursor_position_on_click(ta, (lv_indev_t *)param);
|
update_cursor_position_on_click(ta, (lv_indev_t *)param);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user