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

-- 


Reply via email to