jaehwan pushed a commit to branch master.
commit ed93aa20588633d36bfcdf6e3b093923be65f4d8
Author: Jaehwan Kim <[email protected]>
Date: Tue Apr 16 13:27:55 2013 +0900
Fix the policy is not changed when the theme is changed.
The "reload" signal from edc is necessary always.
---
ChangeLog | 5 ++++
NEWS | 1 +
data/themes/widgets/scroller.edc | 1 +
src/lib/elm_interface_scrollable.c | 58 +++++++++++++++++++++++++-------------
4 files changed, 45 insertions(+), 20 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index a146147..c1c1012 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1251,3 +1251,8 @@
2013-04-15 Jaehwan Kim
* Add the feature for key events.
+
+2013-04-16 Jaehwan Kim
+
+ * Fix the policy is not changed when the theme is changed.
+ The "reload" signal from edc is necessary always.
diff --git a/NEWS b/NEWS
index cc4b0b0..611964c 100644
--- a/NEWS
+++ b/NEWS
@@ -207,6 +207,7 @@ Fixes:
* Fix elc_player crash issue.
* Fix the region_show/region_bring_in don't have a limit at a paging
movement.
* Fix the calculation double type number.
+ * Fix the policy is not changed when the theme is changed.
Removals:
diff --git a/data/themes/widgets/scroller.edc b/data/themes/widgets/scroller.edc
index ca0f316..0be3920 100644
--- a/data/themes/widgets/scroller.edc
+++ b/data/themes/widgets/scroller.edc
@@ -327,6 +327,7 @@ group { name: "elm/scroller/base/default";
set_int(sbalways_v, 0);
set_int(sbalways_h, 0);
set_int(sbvis_timer, 0);
+ emit("reload", "elm");
}
}
diff --git a/src/lib/elm_interface_scrollable.c
b/src/lib/elm_interface_scrollable.c
index 06b6496..b2c8ffb 100644
--- a/src/lib/elm_interface_scrollable.c
+++ b/src/lib/elm_interface_scrollable.c
@@ -979,6 +979,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__,
@@ -3263,6 +3298,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
@@ -3931,26 +3968,7 @@ _elm_scroll_policy_set(Eo *obj EINA_UNUSED, void *_pd,
va_list *list)
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);
--
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter