From 1899fdff8f468fe5a27b8dce7c82c7121c8bfc5e Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Tue, 11 May 2021 13:18:27 +0200 Subject: [PATCH] fix(example) fix focusing in lv_example_textarea_2 related to https://github.com/lvgl/lvgl/issues/2249 --- .../widgets/textarea/lv_example_textarea_2.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/examples/widgets/textarea/lv_example_textarea_2.c b/examples/widgets/textarea/lv_example_textarea_2.c index 44749fa41..d62dfcc49 100644 --- a/examples/widgets/textarea/lv_example_textarea_2.c +++ b/examples/widgets/textarea/lv_example_textarea_2.c @@ -22,15 +22,17 @@ void lv_example_textarea_2(void) lv_obj_align_to(pwd_label, pwd_ta, LV_ALIGN_OUT_TOP_LEFT, 0, 0); /*Create the one-line mode text area*/ - lv_obj_t * oneline_ta = lv_textarea_create(lv_scr_act()); - lv_textarea_set_password_mode(oneline_ta, false); - lv_obj_align(oneline_ta, LV_ALIGN_TOP_RIGHT, -5, 20); + lv_obj_t * text_ta = lv_textarea_create(lv_scr_act()); + lv_textarea_set_one_line(text_ta, true); + lv_textarea_set_password_mode(text_ta, false); + lv_obj_add_event_cb(text_ta, ta_event_cb, LV_EVENT_ALL, NULL); + lv_obj_align(text_ta, LV_ALIGN_TOP_RIGHT, -5, 20); /*Create a label and position it above the text box*/ lv_obj_t * oneline_label = lv_label_create(lv_scr_act()); lv_label_set_text(oneline_label, "Text:"); - lv_obj_align_to(oneline_label, oneline_ta, LV_ALIGN_OUT_TOP_LEFT, 0, 0); + lv_obj_align_to(oneline_label, text_ta, LV_ALIGN_OUT_TOP_LEFT, 0, 0); /*Create a keyboard*/ kb = lv_keyboard_create(lv_scr_act()); @@ -43,13 +45,12 @@ static void ta_event_cb(lv_event_t * e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t * ta = lv_event_get_target(e); - if(code == LV_EVENT_CLICKED) { + if(code == LV_EVENT_CLICKED || code == LV_EVENT_FOCUSED) { /*Focus on the clicked text area*/ - if(kb != NULL) - lv_keyboard_set_textarea(kb, ta); + if(kb != NULL) lv_keyboard_set_textarea(kb, ta); } - else if(code == LV_EVENT_INSERT) { + else if(code == LV_EVENT_READY) { const char * str = lv_event_get_param(e); if(str[0] == '\n') { LV_LOG_USER("Ready\n");