seoz pushed a commit to branch elementary-1.12.

http://git.enlightenment.org/core/elementary.git/commit/?id=6e27fa3f333d6fe669fb3548e53d67db324f83e0

commit 6e27fa3f333d6fe669fb3548e53d67db324f83e0
Author: Jee-Yong Um <jc9...@samsung.com>
Date:   Wed Feb 4 19:26:06 2015 +0900

    elm_label: Fixed to prevent slide's autostart before calling 
elm_label_slide_go()
    
    Summary:
    Label should not start sliding before elm_label_slide_go() is called.
    However, label starts sliding automatically,
    because resize callback emits slide start signal.
    This patch prevents label from sliding before calling elm_label_slide_go().
    
    @fix
    
    Reviewers: woohyun, Hermet, seoz
    
    Subscribers: CHAN, woohyun
    
    Differential Revision: https://phab.enlightenment.org/D1906
---
 src/lib/elm_label.c        | 6 +++++-
 src/lib/elm_widget_label.h | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/lib/elm_label.c b/src/lib/elm_label.c
index 505b717..db5787e 100644
--- a/src/lib/elm_label.c
+++ b/src/lib/elm_label.c
@@ -86,6 +86,8 @@ _label_slide_change(Evas_Object *obj)
    ELM_LABEL_DATA_GET(obj, sd);
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
+   if (!sd->slide_state) return;
+
    edje_object_signal_emit(wd->resize_obj, "elm,state,slide,stop", "elm");
 
    //doesn't support multiline slide effect
@@ -578,8 +580,10 @@ _elm_label_slide_speed_get(Eo *obj EINA_UNUSED, 
Elm_Label_Data *sd)
 }
 
 EOLIAN static void
-_elm_label_slide_go(Eo *obj, Elm_Label_Data *_pd EINA_UNUSED)
+_elm_label_slide_go(Eo *obj, Elm_Label_Data *sd)
 {
+   if (!sd->slide_state) sd->slide_state = EINA_TRUE;
+
    _label_slide_change(obj);
    elm_layout_sizing_eval(obj);
 }
diff --git a/src/lib/elm_widget_label.h b/src/lib/elm_widget_label.h
index 3977034..136f9df 100644
--- a/src/lib/elm_widget_label.h
+++ b/src/lib/elm_widget_label.h
@@ -28,6 +28,7 @@ struct _Elm_Label_Data
    Eina_Bool             ellipsis : 1;
    Eina_Bool             slide_ellipsis : 1;
    Eina_Bool             use_slide_speed : 1;
+   Eina_Bool             slide_state : 1; /**< This will be marked as 
EINA_TRUE after elm_label_slide_go() is called. */
 };
 
 #define ELM_LABEL_DATA_GET(o, sd) \

-- 


Reply via email to