@@ -63,6 +63,7 @@ TimelineDockWidget::TimelineDockWidget(Document& document,
6363 , mRenderProgressAct(nullptr )
6464 , mRenderProgress(nullptr )
6565 , mStepPreviewTimer(nullptr )
66+ , mPausedPreviewState({false , 0 })
6667{
6768 connect (RenderHandler::sInstance , &RenderHandler::previewFinished,
6869 this , &TimelineDockWidget::previewFinished);
@@ -438,6 +439,7 @@ bool TimelineDockWidget::processKeyPress(QKeyEvent *event)
438439
439440void TimelineDockWidget::previewFinished ()
440441{
442+ mPausedPreviewState .first = false ;
441443 if (const auto scene = *mDocument .fActiveScene ) {
442444 scene->setGizmosSuppressed (false );
443445 }
@@ -490,6 +492,8 @@ void TimelineDockWidget::previewBeingRendered()
490492
491493void TimelineDockWidget::previewPaused ()
492494{
495+ mPausedPreviewState = {true , mDocument .getActiveSceneFrame ()};
496+
493497 if (const auto scene = *mDocument .fActiveScene ) {
494498 scene->setGizmosSuppressed (false );
495499 }
@@ -543,6 +547,14 @@ bool TimelineDockWidget::setPrevKeyframe()
543547void TimelineDockWidget::resumePreview ()
544548{
545549 if (eSettings::instance ().fPreviewCache ) {
550+ if (mPausedPreviewState .first ) {
551+ const int frame = mDocument .getActiveSceneFrame ();
552+ if (mPausedPreviewState .second != frame) {
553+ qDebug () << " set new start frame for preview" << frame;
554+ RenderHandler::sInstance ->setPreviewFrame (frame);
555+ mPausedPreviewState .first = false ;
556+ }
557+ }
546558 RenderHandler::sInstance ->resumePreview ();
547559 } else { setStepPreviewStart (); }
548560}
0 commit comments