From: Jaehwan Kim Date: Tue, 16 Apr 2013 05:28:08 +0000 (+0900) Subject: [Scroller] Fix the policy is not changed when the theme is changed. X-Git-Tag: accepted/tizen/20130927.071315^2~435 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=47dd0060aef87877ea7af5012f21cf8a670fb18f;p=profile%2Fmobile%2Felementary.git [Scroller] Fix the policy is not changed when the theme is changed. The "reload" signal from edc is necessary always. Change-Id: I87a7c1e4ddb68528c341152da5e61992d7f208fc --- diff --git a/src/lib/elm_interface_scrollable.c b/src/lib/elm_interface_scrollable.c index 6058f9a..d951828 100644 --- a/src/lib/elm_interface_scrollable.c +++ b/src/lib/elm_interface_scrollable.c @@ -816,6 +816,41 @@ _elm_scroll_anim_stop(Elm_Scrollable_Smart_Interface_Data *sid) } static void +_elm_scroll_policy_signal_emit(Elm_Scrollable_Smart_Interface_Data *sid) +{ + if (sid->hbar_flags == ELM_SCROLLER_POLICY_ON) + edje_object_signal_emit + (sid->edje_obj, "elm,action,show_always,hbar", "elm"); + else if (sid->hbar_flags == ELM_SCROLLER_POLICY_OFF) + edje_object_signal_emit + (sid->edje_obj, "elm,action,hide,hbar", "elm"); + else + edje_object_signal_emit + (sid->edje_obj, "elm,action,show_notalways,hbar", "elm"); + if (sid->vbar_flags == ELM_SCROLLER_POLICY_ON) + edje_object_signal_emit + (sid->edje_obj, "elm,action,show_always,vbar", "elm"); + else if (sid->vbar_flags == ELM_SCROLLER_POLICY_OFF) + edje_object_signal_emit + (sid->edje_obj, "elm,action,hide,vbar", "elm"); + else + edje_object_signal_emit + (sid->edje_obj, "elm,action,show_notalways,vbar", "elm"); + edje_object_message_signal_process(sid->edje_obj); + _elm_scroll_scroll_bar_size_adjust(sid); +} + +static void +_elm_scroll_reload_cb(void *data, + Evas_Object *obj __UNUSED__, + const char *emission __UNUSED__, + const char *source __UNUSED__) +{ + Elm_Scrollable_Smart_Interface_Data *sid = data; + _elm_scroll_policy_signal_emit(sid); +} + +static void _elm_scroll_vbar_drag_cb(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, @@ -3016,6 +3051,8 @@ _scroll_edje_object_attach(Evas_Object *obj) (sid->edje_obj, EVAS_CALLBACK_MOVE, _on_edje_move, sid); edje_object_signal_callback_add + (sid->edje_obj, "reload", "elm", _elm_scroll_reload_cb, sid); + edje_object_signal_callback_add (sid->edje_obj, "drag", "elm.dragable.vbar", _elm_scroll_vbar_drag_cb, sid); edje_object_signal_callback_add @@ -3727,26 +3764,7 @@ _elm_scroll_policy_set(Evas_Object *obj, sid->hbar_flags = hbar; sid->vbar_flags = vbar; - if (sid->hbar_flags == ELM_SCROLLER_POLICY_ON) - edje_object_signal_emit - (sid->edje_obj, "elm,action,show_always,hbar", "elm"); - else if (sid->hbar_flags == ELM_SCROLLER_POLICY_OFF) - edje_object_signal_emit - (sid->edje_obj, "elm,action,hide,hbar", "elm"); - else - edje_object_signal_emit - (sid->edje_obj, "elm,action,show_notalways,hbar", "elm"); - if (sid->vbar_flags == ELM_SCROLLER_POLICY_ON) - edje_object_signal_emit - (sid->edje_obj, "elm,action,show_always,vbar", "elm"); - else if (sid->vbar_flags == ELM_SCROLLER_POLICY_OFF) - edje_object_signal_emit - (sid->edje_obj, "elm,action,hide,vbar", "elm"); - else - edje_object_signal_emit - (sid->edje_obj, "elm,action,show_notalways,vbar", "elm"); - edje_object_message_signal_process(sid->edje_obj); - _elm_scroll_scroll_bar_size_adjust(sid); + _elm_scroll_policy_signal_emit(sid); if (sid->cb_func.content_min_limit) sid->cb_func.content_min_limit(sid->obj, sid->min_w, sid->min_h); _elm_direction_arrows_eval(sid);