slideshow/source/engine/effectrewinder.cxx |   23 +++++++++++++++--------
 slideshow/source/engine/effectrewinder.hxx |    1 +
 2 files changed, 16 insertions(+), 8 deletions(-)

New commits:
commit edeebddfacdb6e77a4f21a96bc7a6e96851434a5
Author:     Gülşah Köse <gulsah.k...@collabora.com>
AuthorDate: Fri Jan 1 18:09:29 2021 +0300
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Tue Jan 5 16:38:23 2021 +0100

    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.k...@collabora.com>
    (cherry picked from commit b83c16834792874524019495662b2f23a066611c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108698
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

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();
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to