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 <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11404
This commit is contained in:
Ali Alzyod 2020-02-25 11:30:23 +00:00 committed by Marcel Hollerbach
parent e4ecb159e7
commit 8e7a01b16f
2 changed files with 45 additions and 14 deletions

View File

@ -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)

View File

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