From: Ali Alzyod Date: Tue, 25 Feb 2020 11:30:23 +0000 (+0000) Subject: efl.ui.textbox: load default font properties once X-Git-Tag: submit/tizen/20200405.220557~155 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=78e3e4f6441ebc8bcdea4e8f3724bb7a56260204;p=platform%2Fupstream%2Fefl.git 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 Differential Revision: https://phab.enlightenment.org/D11404 --- diff --git a/src/lib/elementary/efl_ui_textbox.c b/src/lib/elementary/efl_ui_textbox.c index 11095b2..77627e8 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 0944afa..63df679 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); }