diff --git a/legacy/elementary/src/bin/test_transit.c b/legacy/elementary/src/bin/test_transit.c index 02c5480b6b..5d8a48369b 100644 --- a/legacy/elementary/src/bin/test_transit.c +++ b/legacy/elementary/src/bin/test_transit.c @@ -511,6 +511,7 @@ test_transit8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in trans = elm_transit_add(); elm_transit_auto_reverse_set(trans, EINA_TRUE); elm_transit_tween_mode_set(trans, ELM_TRANSIT_TWEEN_MODE_DECELERATE); + //Negative value makes transition repeate for infinite times. elm_transit_repeat_times_set(trans, -1); effect_context = _custom_context_new(100, 100, 250, 250); elm_transit_object_add(trans, bt); diff --git a/legacy/elementary/src/lib/elm_transit.c b/legacy/elementary/src/lib/elm_transit.c index 79d1c6f568..502b022300 100644 --- a/legacy/elementary/src/lib/elm_transit.c +++ b/legacy/elementary/src/lib/elm_transit.c @@ -289,8 +289,9 @@ _animator_animate_cb(void *data) if (elapsed_time < duration) return ECORE_CALLBACK_RENEW; /* Repeat and reverse and time done! */ - if ((transit->repeat.current == transit->repeat.count) - && (!transit->auto_reverse || transit->repeat.reverse)) + if ((transit->repeat.count >= 0) && + (transit->repeat.current == transit->repeat.count) && + ((!transit->auto_reverse) || transit->repeat.reverse)) { elm_transit_del(transit); return ECORE_CALLBACK_CANCEL;