raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=7b7a9dc144d577fa98b7f202a88101566c32fbc7
commit 7b7a9dc144d577fa98b7f202a88101566c32fbc7 Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Wed Feb 12 20:39:39 2014 +0900 entry - fix scroller hide/show signal when changing style (edje obj) --- src/lib/elm_interface_scrollable.c | 86 +++++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/src/lib/elm_interface_scrollable.c b/src/lib/elm_interface_scrollable.c index 1ba0980..d6c0fc0 100644 --- a/src/lib/elm_interface_scrollable.c +++ b/src/lib/elm_interface_scrollable.c @@ -646,6 +646,47 @@ _elm_scroll_smooth_debug_movetime_add(int x, #endif +static void +_elm_scroll_scroll_bar_h_visibility_apply(Elm_Scrollable_Smart_Interface_Data *sid) +{ + if (sid->hbar_flags != ELM_SCROLLER_POLICY_OFF) + { + if (sid->hbar_visible) + edje_object_signal_emit + (sid->edje_obj, "elm,action,show,hbar", "elm"); + else + edje_object_signal_emit + (sid->edje_obj, "elm,action,hide,hbar", "elm"); + } + else + edje_object_signal_emit(sid->edje_obj, "elm,action,hide,hbar", "elm"); + edje_object_message_signal_process(sid->edje_obj); + _elm_scroll_scroll_bar_size_adjust(sid); + if (sid->cb_func.content_min_limit) + sid->cb_func.content_min_limit(sid->obj, sid->min_w, sid->min_h); +} + +static void +_elm_scroll_scroll_bar_v_visibility_apply(Elm_Scrollable_Smart_Interface_Data *sid) +{ + if (sid->vbar_flags != ELM_SCROLLER_POLICY_OFF) + { + if (sid->vbar_visible) + edje_object_signal_emit + (sid->edje_obj, "elm,action,show,vbar", "elm"); + else + edje_object_signal_emit + (sid->edje_obj, "elm,action,hide,vbar", "elm"); + } + else + edje_object_signal_emit + (sid->edje_obj, "elm,action,hide,vbar", "elm"); + edje_object_message_signal_process(sid->edje_obj); + _elm_scroll_scroll_bar_size_adjust(sid); + if (sid->cb_func.content_min_limit) + sid->cb_func.content_min_limit(sid->obj, sid->min_w, sid->min_h); +} + static int _elm_scroll_scroll_bar_h_visibility_adjust( Elm_Scrollable_Smart_Interface_Data *sid) @@ -712,25 +753,8 @@ _elm_scroll_scroll_bar_h_visibility_adjust( } } } - if (scroll_h_vis_change) - { - if (sid->hbar_flags != ELM_SCROLLER_POLICY_OFF) - { - if (sid->hbar_visible) - edje_object_signal_emit - (sid->edje_obj, "elm,action,show,hbar", "elm"); - else - edje_object_signal_emit - (sid->edje_obj, "elm,action,hide,hbar", "elm"); - } - else - edje_object_signal_emit - (sid->edje_obj, "elm,action,hide,hbar", "elm"); - edje_object_message_signal_process(sid->edje_obj); - _elm_scroll_scroll_bar_size_adjust(sid); - if (sid->cb_func.content_min_limit) - sid->cb_func.content_min_limit(sid->obj, sid->min_w, sid->min_h); - } + + if (scroll_h_vis_change) _elm_scroll_scroll_bar_h_visibility_apply(sid); _elm_direction_arrows_eval(sid); return scroll_h_vis_change; @@ -802,25 +826,7 @@ _elm_scroll_scroll_bar_v_visibility_adjust( } } } - if (scroll_v_vis_change) - { - if (sid->vbar_flags != ELM_SCROLLER_POLICY_OFF) - { - if (sid->vbar_visible) - edje_object_signal_emit - (sid->edje_obj, "elm,action,show,vbar", "elm"); - else - edje_object_signal_emit - (sid->edje_obj, "elm,action,hide,vbar", "elm"); - } - else - edje_object_signal_emit - (sid->edje_obj, "elm,action,hide,vbar", "elm"); - edje_object_message_signal_process(sid->edje_obj); - _elm_scroll_scroll_bar_size_adjust(sid); - if (sid->cb_func.content_min_limit) - sid->cb_func.content_min_limit(sid->obj, sid->min_w, sid->min_h); - } + if (scroll_v_vis_change) _elm_scroll_scroll_bar_v_visibility_apply(sid); _elm_direction_arrows_eval(sid); return scroll_v_vis_change; @@ -1058,6 +1064,8 @@ _elm_scroll_reload_cb(void *data, { Elm_Scrollable_Smart_Interface_Data *sid = data; _elm_scroll_policy_signal_emit(sid); + _elm_scroll_scroll_bar_h_visibility_apply(sid); + _elm_scroll_scroll_bar_v_visibility_apply(sid); } static void @@ -3438,6 +3446,8 @@ static void _elm_scroll_reconfigure(Elm_Scrollable_Smart_Interface_Data *sid) { _elm_scroll_scroll_bar_size_adjust(sid); + _elm_scroll_scroll_bar_h_visibility_apply(sid); + _elm_scroll_scroll_bar_v_visibility_apply(sid); _elm_scroll_page_adjust(sid); } --
