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

-- 


Reply via email to