forked from enlightenment/efl
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:
parent
e968a053d7
commit
3771a66555
|
@ -834,14 +834,25 @@ elm_transit_go(Elm_Transit *transit)
|
||||||
|
|
||||||
ELM_SAFE_FREE(transit->go_in_timer, ecore_timer_del);
|
ELM_SAFE_FREE(transit->go_in_timer, ecore_timer_del);
|
||||||
|
|
||||||
|
Ecore_Evas *ee, *first_ee = NULL;
|
||||||
Eina_List *elist;
|
Eina_List *elist;
|
||||||
Evas_Object *obj;
|
Evas_Object *obj, *first = NULL;
|
||||||
|
Eina_Bool same = EINA_TRUE;
|
||||||
|
|
||||||
ELM_SAFE_FREE(transit->animator, ecore_animator_del);
|
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)
|
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)
|
if (!transit->event_enabled)
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(transit->objs, elist, obj)
|
EINA_LIST_FOREACH(transit->objs, elist, obj)
|
||||||
|
@ -853,8 +864,13 @@ elm_transit_go(Elm_Transit *transit)
|
||||||
transit->total_revert_time = 0;
|
transit->total_revert_time = 0;
|
||||||
transit->revert_mode = EINA_FALSE;
|
transit->revert_mode = EINA_FALSE;
|
||||||
transit->time.begin = ecore_loop_time_get();
|
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);
|
_transit_animate_cb(transit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue