diff options
author | Armin Le Grand (allotropia) <armin.le.grand.extern@allotropia.de> | 2024-02-21 15:51:23 +0100 |
---|---|---|
committer | Armin Le Grand <Armin.Le.Grand@me.com> | 2024-02-21 23:29:41 +0100 |
commit | 8eee7eab8087590aa19bb9989c294e9be767f356 (patch) | |
tree | 74f1d0d3bc8240de96ede024503fcddef0e4e190 /sd/source/ui | |
parent | 018f58b5f2d891b71c4824ff4dd324172b63ad42 (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.cxx | 23 |
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; + } + } } } |