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
This commit is contained in:
Mike Blumenkrantz 2015-06-19 16:28:13 -04:00
parent 6d9c2a5371
commit dc444f5489
1 changed files with 4 additions and 2 deletions

View File

@ -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