Ecore_Evas *ee = data;
ee->animator_ticked = EINA_TRUE;
-
- efl_event_callback_del(ee->evas, EFL_EVENT_ANIMATOR_TICK, _ecore_evas_animator, ee);
- ee->animator_registered = EINA_FALSE;
}
static Eina_Bool
if (ee->engine.func->fn_evas_changed)
ee->engine.func->fn_evas_changed(ee, change);
+ if (!change)
+ {
+ efl_event_callback_del(ee->evas, EFL_EVENT_ANIMATOR_TICK, _ecore_evas_animator, ee);
+ ee->animator_registered = EINA_FALSE;
+ }
#ifdef ECORE_EVAS_ASYNC_RENDER_DEBUG
if ((ee->in_async_render) && (ee->async_render_start <= 0.0))
{
{
// Backend doesn't support per window vsync, fallback to generic support
if (ee->animator_count++ > 0) return;
- ee->anim = ecore_animator_add(_ecore_evas_animator_fallback, ee);
+ if (!ee->anim)
+ {
+ ee->anim = ecore_animator_add(_ecore_evas_animator_fallback, ee);
+ }
}
}
{
// Backend doesn't support per window vsync, fallback to generic support
if (--ee->animator_count > 0) return;
- ecore_animator_del(ee->anim);
- ee->anim = NULL;
+ if (ee->anim)
+ {
+ ecore_animator_del(ee->anim);
+ ee->anim = NULL;
+ }
}
}