The ::stopped signal should be emitted at the end of the Timeline, after
the last ::completed signal emission, in order to have a proper
chronological progress of signal emissions:
started → new-frame → [ ... ] → completed → stopped
This way, ::stopped can perform a proper teardown of the state set up
during ::started, without interfering with the potential cyclical
emission of ::completed.
* done in the above new-frame signal handler?
*/
set_is_playing (timeline, FALSE);
+
+ g_signal_emit (timeline, timeline_signals[COMPLETED], 0);
g_signal_emit (timeline, timeline_signals[STOPPED], 0, TRUE);
}
-
- g_signal_emit (timeline, timeline_signals[COMPLETED], 0);
+ else
+ g_signal_emit (timeline, timeline_signals[COMPLETED], 0);
priv->current_repeat += 1;