From 48851138d7a88600638b0fe9be7d04ce7095c4a9 Mon Sep 17 00:00:00 2001 From: Yeongjong Lee Date: Mon, 2 Sep 2019 20:55:51 +0900 Subject: [PATCH] efl_canvas_animation_player: delete previous target event callback Summary: When target is changed, its event callback related `animation_player` should be deleted. Reviewers: Jaehyun_Cho Reviewed By: Jaehyun_Cho Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9814 --- src/lib/evas/canvas/efl_canvas_animation_player.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lib/evas/canvas/efl_canvas_animation_player.c b/src/lib/evas/canvas/efl_canvas_animation_player.c index 8466067a12..aa89c367ff 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_player.c +++ b/src/lib/evas/canvas/efl_canvas_animation_player.c @@ -12,6 +12,12 @@ _efl_canvas_animation_player_target_set(Eo *eo_obj EINA_UNUSED, Efl_Canvas_Animation_Player_Data *pd, Efl_Canvas_Object *target) { + if (pd->target == target) + return; + + if (pd->target) + efl_event_callback_del(pd->target, EFL_EVENT_DEL, _target_del_cb, pd); + efl_event_callback_add(target, EFL_EVENT_DEL, _target_del_cb, pd); pd->target = target;