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 <cedric@osg.samsung.com>
This commit is contained in:
Youngbok Shin 2016-11-01 10:54:16 -07:00 committed by Cedric BAIL
parent 19dcea07d1
commit ab9f0ae3ca
2 changed files with 23 additions and 1 deletions

View File

@ -1023,6 +1023,14 @@ static char *user_style =
"grn='+ color=#0F0'"
"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)
{
@ -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);

View File

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