diff options
author | Jaehyun Cho <jae_hyun.cho@samsung.com> | 2017-05-26 15:01:34 +0900 |
---|---|---|
committer | Jaehyun Cho <jae_hyun.cho@samsung.com> | 2017-06-30 17:28:35 +0900 |
commit | e13dc1c9b5e6017b1b0d0abd6eb14cc4d403b0b4 (patch) | |
tree | 2280430d60f0767f0c155315fbd252de1788c5d9 | |
parent | e9aa80e4b16436a2d9907bf4ebcb36a5f57c9e58 (diff) | |
download | efl-e13dc1c9b5e6017b1b0d0abd6eb14cc4d403b0b4.tar.gz |
efl_animation: Save and Restore map of target object
Save the map of target object when animation starts.
Restore the map of target object when animation ends.
-rw-r--r-- | src/lib/evas/canvas/efl_animation.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/efl_animation.c b/src/lib/evas/canvas/efl_animation.c index 105ba4af68..f023120099 100644 --- a/src/lib/evas/canvas/efl_animation.c +++ b/src/lib/evas/canvas/efl_animation.c @@ -25,6 +25,10 @@ typedef struct _Target_State { int r, g, b, a; + + Evas_Map *map; + + Eina_Bool map_enable : 1; } Target_State; struct _Evas_Object_Animation_Data @@ -146,6 +150,12 @@ _target_state_save(Eo *target, Target_State *target_state) target_state->g = g; target_state->b = b; target_state->a = a; + + if (target_state->map) + evas_map_free(target_state->map); + + target_state->map = evas_map_dup(evas_object_map_get(target)); + target_state->map_enable = evas_object_map_enable_get(target); } static void @@ -160,6 +170,9 @@ _target_state_restore(Eo *target, Target_State *target_state) a = target_state->a; evas_object_color_set(target, r, g, b, a); + + evas_object_map_set(target, target_state->map); + evas_object_map_enable_set(target, target_state->map_enable); } static Eina_Bool |