timeline: Emit last ::completed before ::stopped
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.
This commit is contained in:
parent
252eafa520
commit
e01f9f330d
@ -1034,10 +1034,12 @@ clutter_timeline_do_frame (ClutterTimeline *timeline)
|
|||||||
* done in the above new-frame signal handler?
|
* done in the above new-frame signal handler?
|
||||||
*/
|
*/
|
||||||
set_is_playing (timeline, FALSE);
|
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[STOPPED], 0, TRUE);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
g_signal_emit (timeline, timeline_signals[COMPLETED], 0);
|
g_signal_emit (timeline, timeline_signals[COMPLETED], 0);
|
||||||
|
|
||||||
priv->current_repeat += 1;
|
priv->current_repeat += 1;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user