This is an automated email from the ASF dual-hosted git repository.

ardovm pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git

commit 636491ffbdbd1e0cf8ddfd8b9f1182475f3d96b8
Author: Arrigo Marchiori <[email protected]>
AuthorDate: Fri Mar 29 21:25:07 2024 +0100

    Search forward or backward for a visible slide
    
    Fixes bug #60859
    
    (cherry picked from commit 4ac3bde70fd91802a5ddff308c1ad71e97d33629)
---
 main/sd/source/ui/slideshow/slideshowimpl.cxx | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/main/sd/source/ui/slideshow/slideshowimpl.cxx 
b/main/sd/source/ui/slideshow/slideshowimpl.cxx
index ef000f8d7b..0c18b3b676 100644
--- a/main/sd/source/ui/slideshow/slideshowimpl.cxx
+++ b/main/sd/source/ui/slideshow/slideshowimpl.cxx
@@ -238,13 +238,23 @@ AnimationSlideController::AnimationSlideController( 
Reference< XIndexAccess > xS
 
 void AnimationSlideController::setStartSlideNumber( sal_Int32 nSlideNumber )
 {
-       while( ( !maSlideVisible[nSlideNumber] ) 
-                       || ( nSlideNumber > maSlideVisible.size() ) ) 
nSlideNumber++;
-
-       if(nSlideNumber > maSlideVisible.size())
-               mnStartSlideNumber = 0;
-       else
-               mnStartSlideNumber = nSlideNumber;
+    mnStartSlideNumber = nSlideNumber;
+    if ( maSlideVisible[mnStartSlideNumber] )
+        return;
+    // Search forward for the first visible slide
+    for ( ; ( (size_t)mnStartSlideNumber < maSlideVisible.size() ) ;
+          mnStartSlideNumber++ ) {
+        if ( maSlideVisible[mnStartSlideNumber] )
+            return;
+    }
+    // Search backward for the first visible slide
+    for (mnStartSlideNumber = nSlideNumber ;
+         ( mnStartSlideNumber >= 0 ) ; mnStartSlideNumber-- ) {
+        if ( maSlideVisible[mnStartSlideNumber] )
+            return;
+    }
+    // No visible slides! Surrender to the request
+    mnStartSlideNumber = nSlideNumber;
 }
 
 sal_Int32 AnimationSlideController::getStartSlideIndex() const

Reply via email to