cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ab9f0ae3ca3f97f550f33947da6e49ac256076ca
commit ab9f0ae3ca3f97f550f33947da6e49ac256076ca Author: Youngbok Shin <[email protected]> Date: Tue Nov 1 10:54:16 2016 -0700 elementary entry: keep style user when new theme is applied Summary: The style user should be kept when entry's mode is changed. @fix Test Plan: 1. Run "elementary_test -to "entry style user" 2. Click "Singleline Mode" toggle 3. See the result Reviewers: raster, tasn, herdsman, cedric Reviewed By: cedric Subscribers: jpeg Differential Revision: https://phab.enlightenment.org/D4366 Signed-off-by: Cedric BAIL <[email protected]> --- src/bin/elementary/test_entry.c | 19 ++++++++++++++++++- src/lib/elementary/elm_entry.c | 5 +++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/bin/elementary/test_entry.c b/src/bin/elementary/test_entry.c index edcdd44..b8a7e62 100644 --- a/src/bin/elementary/test_entry.c +++ b/src/bin/elementary/test_entry.c @@ -1024,6 +1024,14 @@ static char *user_style = "ul='+ underline=on underline_color=#AAA'"; static void +ent_tg_singleline_mode_state_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Evas_Object *en = data; + + elm_entry_single_line_set(en, elm_check_state_get(obj)); +} + +static void ent_bt_style_user_peek(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; @@ -1053,7 +1061,7 @@ ent_bt_style_user_push(void *data, Evas_Object *obj EINA_UNUSED, void *event_inf void test_entry_style_user(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Evas_Object *win, *bx, *hbx, *en, *bt, *bt2; + Evas_Object *win, *bx, *hbx, *en, *bt, *bt2, *tg; win = elm_win_util_standard_add("entry-user-style", "Entry User Style"); elm_win_autodel_set(win, EINA_TRUE); @@ -1079,6 +1087,15 @@ test_entry_style_user(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void evas_object_show(en); elm_object_focus_set(en, EINA_TRUE); + tg = elm_check_add(bx); + elm_object_style_set(tg, "toggle"); + elm_object_text_set(tg, "Singleline Mode"); + elm_object_part_text_set(tg, "on", "ON"); + elm_object_part_text_set(tg, "off", "OFF"); + evas_object_smart_callback_add(tg, "changed", ent_tg_singleline_mode_state_changed_cb, en); + elm_box_pack_end(bx, tg); + evas_object_show(tg); + hbx = elm_box_add(bx); elm_box_horizontal_set(hbx, EINA_TRUE); elm_box_pack_end(bx, hbx); diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index 78a3209..49fdac8 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -842,6 +842,7 @@ _elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd) { const char *str; const char *t; + const char *stl_user; const char *style = elm_widget_style_get(obj); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, ELM_THEME_APPLY_FAILED); @@ -863,6 +864,7 @@ _elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd) _mirrored_set(obj, elm_widget_mirrored_get(obj)); + stl_user = eina_stringshare_add(edje_obj_part_text_style_user_peek(sd->entry_edje, "elm.text")); t = eina_stringshare_add(elm_object_text_get(obj)); elm_widget_theme_object_set @@ -875,6 +877,9 @@ _elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd) edje_obj_part_text_select_allow_set (sd->entry_edje, "elm.text", EINA_FALSE); + edje_obj_part_text_style_user_push(sd->entry_edje, "elm.text", stl_user); + eina_stringshare_del(stl_user); + elm_object_text_set(obj, t); eina_stringshare_del(t); --
