From f4cf46e9b54a56357611ed709e04b3699810fdef Mon Sep 17 00:00:00 2001 From: Bowon Ryu Date: Fri, 5 Jun 2020 14:26:22 +0900 Subject: [PATCH] edje: markup flag should be TRUE in legacy edje_object_part_text_set Summary: Through some APIs (elm_entry_editable_set, elm_entry_single_line_set, etc.) located after edje_object_part_text_set(legacy) If efl_ui_widget_theme_apply is called, In edje_object_part_text_raw_generic_set, the legacy flag becomes FALSE. And in this case, the logic works in the unintended direction because the set_markup flag is FALSE. Test Plan: /* gcc -o entry_example entry.c `pkg-config --cflags --libs elementary` */ #include EAPI_MAIN int elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) { Evas_Object *win, *en; elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); win = elm_win_util_standard_add("entry-example", "test"); elm_win_autodel_set(win, EINA_TRUE); en = elm_entry_add(win); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_object_part_text_set(en, "elm.guide", "TEST"); elm_entry_editable_set(en, EINA_FALSE); evas_object_show(en); elm_object_content_set(win, en); evas_object_resize(win, 300, 200); evas_object_show(win); elm_run(); return 0; } ELM_MAIN() Reviewers: woohyun, ali.alzyod Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11868 --- src/lib/edje/edje_util.c | 2 +- src/tests/elementary/elm_test_entry.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index a8071531e1..d3476cb2c0 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -6725,7 +6725,7 @@ edje_object_part_text_set(const Edje_Object *obj, const char *part, const char * ed = _edje_fetch(obj); - return _edje_efl_text_text_set((Eo *) obj, ed, part, text, EINA_TRUE, EINA_FALSE); + return _edje_efl_text_text_set((Eo *) obj, ed, part, text, EINA_TRUE, EINA_TRUE); } EAPI const char * diff --git a/src/tests/elementary/elm_test_entry.c b/src/tests/elementary/elm_test_entry.c index 200ff1e744..93951d9e45 100644 --- a/src/tests/elementary/elm_test_entry.c +++ b/src/tests/elementary/elm_test_entry.c @@ -480,6 +480,26 @@ EFL_START_TEST(elm_entry_text_set) } EFL_END_TEST +EFL_START_TEST(elm_entry_guide_text_set) +{ + Evas_Object *win, *entry; + const char *markup_text = "markup_test"; + const char *markup_text2 = "test_markup"; + + win = win_add(NULL, "entry", ELM_WIN_BASIC); + + entry = elm_entry_add(win); + + elm_object_part_text_set(entry, "elm.guide", markup_text); + elm_entry_editable_set(entry, EINA_FALSE); + ck_assert_str_eq(elm_object_part_text_get(entry, "elm.guide"), markup_text); + + elm_object_part_text_set(entry, "elm.guide", markup_text2); + elm_entry_single_line_set(entry, EINA_FALSE); + ck_assert_str_eq(elm_object_part_text_get(entry, "elm.guide"), markup_text2); +} +EFL_END_TEST + EFL_START_TEST(elm_entry_file_get_set) { Evas_Object *win, *entry; @@ -627,6 +647,7 @@ void elm_test_entry(TCase *tc) tcase_add_test(tc, elm_entry_atspi_text_selections); tcase_add_test(tc, elm_atspi_role_get); tcase_add_test(tc, elm_entry_text_set); + tcase_add_test(tc, elm_entry_guide_text_set); tcase_add_test(tc, elm_entry_magnifier); tcase_add_test(tc, elm_entry_file_get_set); tcase_add_test(tc, elm_entry_test_text_class);