[Scroller] Fix the policy is not changed when the theme is changed.
authorJaehwan Kim <jae.hwan.kim@samsung.com>
Tue, 16 Apr 2013 05:28:08 +0000 (14:28 +0900)
committerSungho Kwak <sungho1.kwak@samsung.com>
Wed, 12 Jun 2013 04:15:34 +0000 (13:15 +0900)
The "reload" signal from edc is necessary always.

Change-Id: I87a7c1e4ddb68528c341152da5e61992d7f208fc

src/lib/elm_interface_scrollable.c

index 6058f9a..d951828 100644 (file)
@@ -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);