MainTestClock
Manual control over the frames ComposeSwingTest sends its own composition.
ComposeSwingTest.awaitIdle settles a composition by sending it frames; this clock decides whether those frames happen on their own (autoAdvance true, the default, leaving every gate's behavior unchanged) or only when a test sends one, which is what makes it possible to observe a frame-driven animation partway through rather than only once it has run to completion.
This clock governs only ComposeSwingTest's own off-screen composition. Content composed under a real org.jetbrains.compose.swing.window.Window or org.jetbrains.compose.swing.window.Dialog runs on that window's own recomposer, whose frame-driven work is paced by the display that window is on - this clock has no effect on it.
Properties
Whether ComposeSwingTest.awaitIdle sends frames on its own to reach idle. true by default.
The composition time reached by the frames sent so far, whichever call sent them.
The duration a single frame advances currentTime by: one frame of a 60Hz display, whichever gate sent it - not the host display's refresh rate.
Functions
Advances currentTime by duration.
Sends one frame, advancing currentTime by frameDuration, and returns once the frame's effects have propagated as far as they can without another one.
Sends frames, one at a time, until condition returns true.