elm_transit: Convert to new animators

Summary:
Use more efficient animator mechanism.
Depends on D7047

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7048
This commit is contained in:
Derek Foreman 2018-09-18 09:43:05 -05:00
parent e968a053d7
commit 3771a66555
1 changed files with 20 additions and 4 deletions

View File

@ -834,14 +834,25 @@ elm_transit_go(Elm_Transit *transit)
ELM_SAFE_FREE(transit->go_in_timer, ecore_timer_del);
Ecore_Evas *ee, *first_ee = NULL;
Eina_List *elist;
Evas_Object *obj;
Evas_Object *obj, *first = NULL;
Eina_Bool same = EINA_TRUE;
ELM_SAFE_FREE(transit->animator, ecore_animator_del);
if (transit->objs)
{
first = eina_list_data_get(transit->objs);
first_ee = ecore_evas_ecore_evas_get(evas_object_evas_get(first));
}
EINA_LIST_FOREACH(transit->objs, elist, obj)
_transit_obj_data_save(obj);
{
_transit_obj_data_save(obj);
ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj));
if (ee != first_ee)
same = EINA_FALSE;
}
if (!transit->event_enabled)
{
EINA_LIST_FOREACH(transit->objs, elist, obj)
@ -853,8 +864,13 @@ elm_transit_go(Elm_Transit *transit)
transit->total_revert_time = 0;
transit->revert_mode = EINA_FALSE;
transit->time.begin = ecore_loop_time_get();
transit->animator = ecore_animator_add(_transit_animate_cb, transit);
if (!same || !first)
transit->animator = ecore_animator_add(_transit_animate_cb, transit);
else
transit->animator = ecore_evas_animator_add(first,
_transit_animate_cb,
transit);
_transit_animate_cb(transit);
}