From 75909f8654110b04eb757cab4105153918969791 Mon Sep 17 00:00:00 2001 From: WooHyun Jung Date: Fri, 28 Mar 2014 14:17:02 +0900 Subject: [PATCH] elm win - fix wrong resizing of focus highlight obj. When focus highlight animation is enabled, focus highlight can be resized only by animator inside edje. So, if there is no animation by some reasons, focus highlight just keeps its original. @fix --- .../elementary/data/themes/edc/elm/focus.edc | 5 ++++ legacy/elementary/src/bin/test_focus.c | 26 +++++++++++++++++++ legacy/elementary/src/lib/elm_win.c | 2 ++ 3 files changed, 33 insertions(+) diff --git a/legacy/elementary/data/themes/edc/elm/focus.edc b/legacy/elementary/data/themes/edc/elm/focus.edc index 4e9563bfe9..19d78cde74 100644 --- a/legacy/elementary/data/themes/edc/elm/focus.edc +++ b/legacy/elementary/data/themes/edc/elm/focus.edc @@ -148,5 +148,10 @@ group { name: "elm/focus_highlight/top/default"; target: "sel"; after: "pulse"; } + program { + signal: "elm,state,anim,stop"; source: "elm"; + action: STATE_SET "default" 0.0; + target: "base"; + } } } diff --git a/legacy/elementary/src/bin/test_focus.c b/legacy/elementary/src/bin/test_focus.c index 216ad50f8e..f8d60eef0e 100644 --- a/legacy/elementary/src/bin/test_focus.c +++ b/legacy/elementary/src/bin/test_focus.c @@ -57,6 +57,15 @@ _tb_sel(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) printf("tb sel %p\n", obj); } +static void +_focus_anim_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + if (elm_check_state_get(obj)) + elm_win_focus_highlight_animate_set(data, EINA_TRUE); + else + elm_win_focus_highlight_animate_set(data, EINA_FALSE); +} + void test_focus(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -409,6 +418,23 @@ test_focus(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_inf } } } + + Evas_Object *bx = elm_box_add(win); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + elm_box_pack_end(tbx, bx); + my_show(bx); + + { + Evas_Object *ck; + ck = elm_check_add(bx); + elm_object_text_set(ck, "Focus Highlight Animation Enable"); + elm_box_pack_end(bx, ck); + my_show(ck); + evas_object_smart_callback_add(ck, "changed", + _focus_anim_changed, + win); + } } /**** focus 2 ****/ diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c index 131e81781e..6c0bf7b721 100644 --- a/legacy/elementary/src/lib/elm_win.c +++ b/legacy/elementary/src/lib/elm_win.c @@ -750,6 +750,8 @@ _elm_win_focus_highlight_simple_setup(Elm_Win_Smart_Data *sd, clip = evas_object_clip_get(target); if (clip) evas_object_clip_set(obj, clip); } + + edje_object_signal_emit(obj, "elm,state,anim,stop", "elm"); } static void