sd/source/ui/slideshow/slideshowimpl.cxx |    8 ++++++++
 1 file changed, 8 insertions(+)

New commits:
commit ef96ca7f3b839f591b6258d1b3565a2bd7d5ad79
Author:     Armin Le Grand (allotropia) <[email protected]>
AuthorDate: Thu Jan 11 14:22:32 2024 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Wed Jan 24 09:50:58 2024 +0100

    tdf#158664 Ignore Notifications when SlideShow is inactive
    
    The impl SlideshowImpl gets notifications for changes from
    the ObjectModel, but needs to ignore them when SlideShow
    is not active/running. For discussion how to do this see
    comments in task.
    
    Change-Id: Ic251af4b82f0f4b48d8d9b0127dd2f6015966935
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161922
    Tested-by: Jenkins
    Reviewed-by: Armin Le Grand <[email protected]>
    (cherry picked from commit 2184890a0eebc55aa24cbe61de5b8918d958c65f)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161932
    Reviewed-by: Michael Stahl <[email protected]>
    (cherry picked from commit f259a4636308fbdb8c5d8b9f430e3d53018f327b)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161944
    Reviewed-by: Michael Weghorn <[email protected]>
    Reviewed-by: Ilmari Lauhakangas <[email protected]>
    Tested-by: Xisco Fauli <[email protected]>
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sd/source/ui/slideshow/slideshowimpl.cxx 
b/sd/source/ui/slideshow/slideshowimpl.cxx
index 1e739ab97f26..4bf43fc3bda5 100644
--- a/sd/source/ui/slideshow/slideshowimpl.cxx
+++ b/sd/source/ui/slideshow/slideshowimpl.cxx
@@ -3192,6 +3192,14 @@ void SlideshowImpl::Notify(SfxBroadcaster& /*rBC*/, 
const SfxHint& rHint)
         // better do nothing when no DrawModel (should not happen)
         return;
 
+    // tdf#158664 I am surprised, but the 'this' instance keeps incarnated
+    // when the slideshow was running once, so need to check for
+    // SlideShow instance/running to be safe.
+    // NOTE: isRunning() checks mxShow.is(), that is what we want
+    if (!isRunning())
+        // no SlideShow instance or not running, nothing to do
+        return;
+
     const SdrHintKind eHintKind(static_cast<const SdrHint&>(rHint).GetKind());
 
     if (SdrHintKind::ObjectChange == eHintKind)

Reply via email to