summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaehyun Cho <jae_hyun.cho@samsung.com>2017-05-26 15:01:34 +0900
committerJaehyun Cho <jae_hyun.cho@samsung.com>2017-06-30 17:28:35 +0900
commite13dc1c9b5e6017b1b0d0abd6eb14cc4d403b0b4 (patch)
tree2280430d60f0767f0c155315fbd252de1788c5d9
parente9aa80e4b16436a2d9907bf4ebcb36a5f57c9e58 (diff)
downloadefl-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.c13
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