summaryrefslogtreecommitdiff
path: root/sd/source/ui
diff options
context:
space:
mode:
authorArmin Le Grand (allotropia) <armin.le.grand.extern@allotropia.de>2024-02-21 15:51:23 +0100
committerArmin Le Grand <Armin.Le.Grand@me.com>2024-02-21 23:29:41 +0100
commit8eee7eab8087590aa19bb9989c294e9be767f356 (patch)
tree74f1d0d3bc8240de96ede024503fcddef0e4e190 /sd/source/ui
parent018f58b5f2d891b71c4824ff4dd324172b63ad42 (diff)
IASS: Allow exit Impress when SlideShow is running
Change-Id: Iffccf2c7fe37845f9da44fd911cf974db026af89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163697 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
Diffstat (limited to 'sd/source/ui')
-rw-r--r--sd/source/ui/unoidl/DrawController.cxx23
1 files changed, 21 insertions, 2 deletions
diff --git a/sd/source/ui/unoidl/DrawController.cxx b/sd/source/ui/unoidl/DrawController.cxx
index 011bfe939858..8ae76e58e66b 100644
--- a/sd/source/ui/unoidl/DrawController.cxx
+++ b/sd/source/ui/unoidl/DrawController.cxx
@@ -182,8 +182,27 @@ sal_Bool SAL_CALL DrawController::suspend( sal_Bool Suspend )
{
// do not allow suspend if a slideshow needs this controller!
rtl::Reference< SlideShow > xSlideShow( SlideShow::GetSlideShow( *pViewShellBase ) );
- if( xSlideShow.is() && xSlideShow->dependsOn(pViewShellBase) )
- return false;
+ if (xSlideShow.is())
+ {
+ if (SlideShow::IsInteractiveSlideshow())
+ {
+ // IASS mode: If preview mode, end it
+ if (xSlideShow->isInteractiveSetup())
+ xSlideShow->endInteractivePreview();
+
+ // end the SlideShow
+ xSlideShow->end();
+
+ // use SfxBaseController::suspend( Suspend ) below
+ // for normal processing and return value
+ }
+ else
+ {
+ // original reaction - prevent exit
+ if (xSlideShow->dependsOn(pViewShellBase))
+ return false;
+ }
+ }
}
}