diff options
author | Gülşah Köse <gulsah.kose@collabora.com> | 2021-01-01 18:09:29 +0300 |
---|---|---|
committer | Xisco Fauli <xiscofauli@libreoffice.org> | 2021-01-05 16:38:23 +0100 |
commit | edeebddfacdb6e77a4f21a96bc7a6e96851434a5 (patch) | |
tree | e6e07c4e1e8ce568f4b5d73c80092ed355a4bcf0 /slideshow | |
parent | c7eef3cbceacca944785daf6ca5e8d8301df1644 (diff) |
tdf#136278 Follow-up Check when the eventqueue needs to be emptied.
Follow up commit a63caf49958b40e33e0d7aaedbe6424f78ecdc46
Change-Id: I90b94f6aee1e1fe62f61ca20a75fd59e2a12d5da
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108559
Tested-by: Jenkins
Reviewed-by: Gülşah Köse <gulsah.kose@collabora.com>
(cherry picked from commit b83c16834792874524019495662b2f23a066611c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108698
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'slideshow')
-rw-r--r-- | slideshow/source/engine/effectrewinder.cxx | 23 | ||||
-rw-r--r-- | slideshow/source/engine/effectrewinder.hxx | 1 |
2 files changed, 16 insertions, 8 deletions
diff --git a/slideshow/source/engine/effectrewinder.cxx b/slideshow/source/engine/effectrewinder.cxx index 6fd225dd6c42..2e03be89698f 100644 --- a/slideshow/source/engine/effectrewinder.cxx +++ b/slideshow/source/engine/effectrewinder.cxx @@ -85,7 +85,8 @@ EffectRewinder::EffectRewinder ( mpAsynchronousRewindEvent(), mxCurrentAnimationRootNode(), mxCurrentSlide(), - mbNonUserTriggeredMainSequenceEffectSeen(false) + mbNonUserTriggeredMainSequenceEffectSeen(false), + mbHasAdvancedTimeSetting(false) { initialize(); } @@ -161,6 +162,15 @@ void EffectRewinder::setCurrentSlide ( const uno::Reference<drawing::XDrawPage>& xSlide) { mxCurrentSlide = xSlide; + + // Check if the current slide has advance time setting or not + uno::Reference< beans::XPropertySet > xPropSet( mxCurrentSlide, uno::UNO_QUERY ); + sal_Int32 nChange(0); + + if( xPropSet.is()) + getPropertyValue( nChange, xPropSet, "Change"); + + mbHasAdvancedTimeSetting = nChange; } bool EffectRewinder::rewind ( @@ -180,6 +190,9 @@ bool EffectRewinder::rewind ( // Abort (and skip over the rest of) any currently active animation. mrUserEventQueue.callSkipEffectEventHandler(); + if (!mbHasAdvancedTimeSetting) + mrEventQueue.forceEmpty(); + const int nSkipCount (mnMainSequenceEffectCount - 1); if (nSkipCount < 0) { @@ -418,13 +431,7 @@ void EffectRewinder::asynchronousRewind ( // when the slide is shown. mbNonUserTriggeredMainSequenceEffectSeen = false; - uno::Reference< beans::XPropertySet > xPropSet( mxCurrentSlide, uno::UNO_QUERY ); - sal_Int32 nChange(0); - - if( xPropSet.is()) - getPropertyValue( nChange, xPropSet, "Change"); - - if (!nChange) + if (!mbHasAdvancedTimeSetting) mrEventQueue.forceEmpty(); if (mbNonUserTriggeredMainSequenceEffectSeen) diff --git a/slideshow/source/engine/effectrewinder.hxx b/slideshow/source/engine/effectrewinder.hxx index 4844991b8333..8084b03f6248 100644 --- a/slideshow/source/engine/effectrewinder.hxx +++ b/slideshow/source/engine/effectrewinder.hxx @@ -129,6 +129,7 @@ private: ::std::shared_ptr<ScreenUpdater::UpdateLock> mpPaintLock; bool mbNonUserTriggeredMainSequenceEffectSeen; + bool mbHasAdvancedTimeSetting; // Slide has advanced time setting or not. void initialize(); |