discomfitor pushed a commit to branch master.


commit dc444f548998c5c16c2d43d6ba41587c1cf8bc3e
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Fri Jun 19 16:28:13 2015 -0400

    fix animation refcounting when toggling object visibility very quickly
    previously the animating flag would receive an additional increment for
    every effect, even if it was currently animating a prior effect, leading
    to objects which were never deleted
 src/bin/e_comp_object.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 473b1fe..14cf7f9 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -714,8 +714,10 @@ _e_comp_object_effect_visibility_start(E_Comp_Object *cw, 
Eina_Bool state)
    int x, y, zw, zh;
    if ((!cw->visibility_effect) || 
(!e_comp_object_effect_allowed_get(cw->smart_obj))) return EINA_TRUE;;
-   _e_comp_object_animating_begin(cw);
-   e_comp_object_effect_stop(cw->smart_obj, _e_comp_object_done_defer);
+   if (!cw->effect_running)
+     _e_comp_object_animating_begin(cw);
+   if (!e_comp_object_effect_stop(cw->smart_obj, _e_comp_object_done_defer))
+     return _e_comp_object_animating_end(cw);
    if (!e_comp_object_effect_set(cw->smart_obj, cw->visibility_effect))
      return _e_comp_object_animating_end(cw);
    /* mouse position is not available for some windows under X11


Reply via email to