animation_view: stablizing++ 09/192409/3
authorHermet Park <hermetpark@gmail.com>
Mon, 5 Nov 2018 09:19:22 +0000 (18:19 +0900)
committerJunsuChoi <jsuya.choi@samsung.com>
Mon, 29 Apr 2019 07:19:55 +0000 (16:19 +0900)
1. fix wrong plack_back restoration.
2. skip transit del callback when instance is destroyed.

Change-Id: Icf1e995f110861c1d7552cb2ef7df2de9b1dd161

src/lib/elm_animation_view.c

index f2bed162144ab25359df7ef335b783f859b75b09..2fa945d157291bdfef7e6180f157b0d1e8cb3f1d 100644 (file)
@@ -179,7 +179,11 @@ _elm_animation_view_evas_object_smart_del(Eo *obj, Elm_Animation_View_Data *pd E
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
    if (pd->file) eina_stringshare_del(pd->file);
-   if (pd->transit) elm_transit_del(pd->transit);
+   if (pd->transit)
+     {
+        pd->transit = NULL;   //Skip perform transit_del_cb()
+        elm_transit_del(pd->transit);
+     }
    pd->state = ELM_ANIMATION_VIEW_STATE_NOT_READY;
    eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
 }
@@ -459,7 +463,12 @@ _elm_animation_view_keyframe_set(Eo *obj EINA_UNUSED, Elm_Animation_View_Data *p
      evas_object_vg_animated_frame_set(pd->vg, (int) (pd->frame_cnt * keyframe));
 
    if (pd->transit)
-     elm_transit_progress_value_set(pd->transit, keyframe);
+     {
+        if (pd->play_back)
+          elm_transit_progress_value_set(pd->transit, 1 - keyframe);
+        else
+          elm_transit_progress_value_set(pd->transit, keyframe);
+     }
 }
 
 EOLIAN static double