bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8e7a01b16f64227143101a517daec7333ed430e8
commit 8e7a01b16f64227143101a517daec7333ed430e8 Author: Ali Alzyod <ali198...@gmail.com> Date: Tue Feb 25 11:30:23 2020 +0000 efl.ui.textbox: load default font properties once As described in task T8617 when toggle editable mode for textbox, we will reserve user changes (instead of reload them again). this issue is affected by D9502, I do not fully understand why do we need it, so I leave color loading as it is. Reviewed-by: Marcel Hollerbach <m...@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11404 --- src/lib/elementary/efl_ui_textbox.c | 38 +++++++++++++++++++++------------ src/tests/elementary/efl_ui_test_text.c | 21 ++++++++++++++++++ 2 files changed, 45 insertions(+), 14 deletions(-) diff --git a/src/lib/elementary/efl_ui_textbox.c b/src/lib/elementary/efl_ui_textbox.c index 17cd36fd4a..a5d5852fe9 100644 --- a/src/lib/elementary/efl_ui_textbox.c +++ b/src/lib/elementary/efl_ui_textbox.c @@ -631,7 +631,8 @@ _efl_ui_textbox_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Textbox_Data *sd) efl_content_set(efl_part(sd->entry_edje, "efl.text"), sd->text_table); } - _create_text_cursors(obj, sd); + if (!sd->cursor && !sd->cursor_bidi) + _create_text_cursors(obj, sd); return theme_apply; } @@ -1593,11 +1594,17 @@ _update_text_theme(Eo *obj, Efl_Ui_Textbox_Data *sd) // Main Text // font_set - font_name = efl_layout_group_data_get(wd->resize_obj, "font.name"); - font_size = efl_layout_group_data_get(wd->resize_obj, "font.size"); - font_size_n = font_size ? atoi(font_size) : 0; - efl_text_font_family_set(sd->text_obj, font_name); - efl_text_font_size_set(sd->text_obj, font_size_n); + if (!efl_text_font_family_get(sd->text_obj)) + { + font_name = efl_layout_group_data_get(wd->resize_obj, "font.name"); + efl_text_font_family_set(sd->text_obj, font_name); + } + if (!efl_text_font_size_get(sd->text_obj)) + { + font_size = efl_layout_group_data_get(wd->resize_obj, "font.size"); + font_size_n = font_size ? atoi(font_size) : 0; + efl_text_font_size_set(sd->text_obj, font_size_n); + } // color if (disabled) @@ -1610,11 +1617,17 @@ _update_text_theme(Eo *obj, Efl_Ui_Textbox_Data *sd) } // Guide Text - font_name = efl_layout_group_data_get(wd->resize_obj, "guide.font.name"); - font_size = efl_layout_group_data_get(wd->resize_obj, "guide.font.size"); - font_size_n = font_size ? atoi(font_size) : 0; - efl_text_font_family_set(sd->text_guide_obj, font_name); - efl_text_font_size_set(sd->text_guide_obj, font_size_n); + if (!efl_text_font_family_get(sd->text_guide_obj)) + { + font_name = efl_layout_group_data_get(wd->resize_obj, "guide.font.name"); + efl_text_font_family_set(sd->text_guide_obj, font_name); + } + if (!efl_text_font_size_get(sd->text_guide_obj)) + { + font_size = efl_layout_group_data_get(wd->resize_obj, "guide.font.size"); + font_size_n = font_size ? atoi(font_size) : 0; + efl_text_font_size_set(sd->text_guide_obj, font_size_n); + } colorcode = NULL; // color @@ -1796,8 +1809,6 @@ _efl_ui_textbox_efl_text_format_password_set(Eo *obj, Efl_Ui_Textbox_Data *sd, E efl_input_text_input_content_type_set(obj, ((efl_input_text_input_content_type_get(obj) | EFL_INPUT_TEXT_CONTENT_TYPE_AUTO_COMPLETE) & ~EFL_INPUT_TEXT_CONTENT_TYPE_SENSITIVE_DATA)); efl_access_object_role_set(obj, EFL_ACCESS_ROLE_ENTRY); } - - efl_ui_widget_theme_apply(obj); } static void @@ -1856,7 +1867,6 @@ _efl_ui_textbox_efl_text_interactive_editable_set(Eo *obj, Efl_Ui_Textbox_Data * efl_text_interactive_editable_set(efl_super(obj, MY_CLASS), editable); - efl_ui_widget_theme_apply(obj); efl_ui_widget_focus_allow_set(obj, editable); if (editable) diff --git a/src/tests/elementary/efl_ui_test_text.c b/src/tests/elementary/efl_ui_test_text.c index 0944afa0ef..63df67919c 100644 --- a/src/tests/elementary/efl_ui_test_text.c +++ b/src/tests/elementary/efl_ui_test_text.c @@ -264,6 +264,26 @@ EFL_START_TEST(text_keys_handler) } EFL_END_TEST +EFL_START_TEST(text_editable) +{ + Eo *txt, *win; + win = win_add(); + txt = efl_add(EFL_UI_TEXTBOX_CLASS, win); + efl_text_font_size_set(txt, 100); + efl_text_font_family_set(txt, "Arial"); + efl_text_interactive_editable_set(txt, !efl_text_interactive_editable_get(txt)); + ck_assert_int_eq(efl_text_font_size_get(txt), 100); + ck_assert_str_eq(efl_text_font_family_get(txt), "Arial"); + + efl_ui_widget_disabled_set(txt, EINA_TRUE); + ck_assert_int_eq(efl_text_font_size_get(txt), 100); + ck_assert_str_eq(efl_text_font_family_get(txt), "Arial"); + + efl_del(txt); + efl_del(win); +} +EFL_END_TEST + void efl_ui_test_text(TCase *tc) { tcase_add_test(tc, text_cnp); @@ -273,4 +293,5 @@ void efl_ui_test_text(TCase *tc) tcase_add_test(tc, text_scroll_mode); tcase_add_test(tc, text_change_event); tcase_add_test(tc, text_keys_handler); + tcase_add_test(tc, text_editable); } --