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); }