[Progressbar] block animation,finished signal emit when next animation is ready
authorSung-Taek Hong <sth253.hong@samsung.com>
Tue, 15 Sep 2015 06:00:45 +0000 (15:00 +0900)
committerJaehwan Kim <jae.hwan.kim@samsung.com>
Tue, 17 Nov 2015 05:15:44 +0000 (14:15 +0900)
Signed-off-by: Sung-Taek Hong <sth253.hong@samsung.com>
Change-Id: Ie27350bc6729a44bbae537dde2384f3a77b8be63

src/lib/tizen_vector.c

index 44ae4078ed7c35998a5a9e2449018a51fea24a41..8a9f3b2e2b5747f5aa990fc52bf1839d89875220 100644 (file)
@@ -1506,6 +1506,7 @@ typedef struct vg_progressbar_s
    double shrink;
    double shift;
    Ecore_Job *pulse_job;
+   Eina_Bool continued : 1;
 } vg_progressbar;
 
 static void
@@ -1617,7 +1618,10 @@ _transit_progressbar_normal_animation_finished(Elm_Transit_Effect *effect, Elm_T
 {
    vg_progressbar *vd = effect;
    vd->transit[2] = NULL;
-   elm_layout_signal_emit(vd->obj, "elm,action,animation,finished", "elm");
+   if (vd->continued)
+     vd->continued = EINA_FALSE;
+   else
+     elm_layout_signal_emit(vd->obj, "elm,action,animation,finished", "elm");
 }
 
 static void
@@ -1666,6 +1670,8 @@ progressbar_normal_fg_resize_cb(void *data, Evas *e EINA_UNUSED,
    elm_transit_duration_set(vd->transit[1], 0.7);
    elm_transit_objects_final_state_keep_set(vd->transit[1], EINA_TRUE);
 
+   if (vd->transit[2]) vd->continued = EINA_TRUE;
+
    elm_transit_del(vd->transit[2]);
    vd->transit[2] = elm_transit_add();
    elm_transit_object_add(vd->transit[2], obj);