It may be that because ClientWindow is still switching to an entirely different UI tree (busy=>normal), a blank frame is drawn and thus the progress from the previous frame becomes visible for a brief moment at the end of the animation.
Now ProgressWidget is not considered complete until two frames have been drawn at the final position, allowing a GL buffer swap to occur without consequences.
Todo for later: Busy mode shouldn't use a separate UI tree -- there's shouldn't be a "busy mode" at all.
ProgressWidget: Tweaking the end of the animation
It may be that because ClientWindow is still switching to an
entirely different UI tree (busy=>normal), a blank frame is drawn and
thus the progress from the previous frame becomes visible for a brief
moment at the end of the animation.
Now ProgressWidget is not considered complete until two frames have
been drawn at the final position, allowing a GL buffer swap to occur
without consequences.
Todo for later: Busy mode shouldn't use a separate UI tree -- there's
shouldn't be a "busy mode" at all.