summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
Diffstat (limited to 'sd')
-rw-r--r--sd/source/ui/inc/slideshow.hxx5
-rw-r--r--sd/source/ui/slideshow/SlideShowRestarter.cxx3
-rw-r--r--sd/source/ui/slideshow/slideshow.cxx20
3 files changed, 22 insertions, 6 deletions
diff --git a/sd/source/ui/inc/slideshow.hxx b/sd/source/ui/inc/slideshow.hxx
index 74ebfa68927b..0b87ebadc0e2 100644
--- a/sd/source/ui/inc/slideshow.hxx
+++ b/sd/source/ui/inc/slideshow.hxx
@@ -181,6 +181,9 @@ public:
static sal_Int32 GetDisplay();
+ bool IsExitAfterPresenting() const;
+ void SetExitAfterPresenting(bool bExit);
+
private:
SlideShow( SdDrawDocument* pDoc );
@@ -190,7 +193,7 @@ private:
void StartInPlacePresentation();
void StartFullscreenPresentation();
- void ThrowIfDisposed() throw (::com::sun::star::uno::RuntimeException);
+ void ThrowIfDisposed() const throw (css::uno::RuntimeException);
void CreateController( ViewShell* pViewSh, ::sd::View* pView, ::Window* pParentWindow );
WorkWindow *GetWorkWindow();
diff --git a/sd/source/ui/slideshow/SlideShowRestarter.cxx b/sd/source/ui/slideshow/SlideShowRestarter.cxx
index 822e8bee6db3..63fae1125082 100644
--- a/sd/source/ui/slideshow/SlideShowRestarter.cxx
+++ b/sd/source/ui/slideshow/SlideShowRestarter.cxx
@@ -83,7 +83,10 @@ IMPL_LINK_NOARG(SlideShowRestarter, EndPresentation)
{
if (mnDisplayCount != (sal_Int32)Application::GetScreenCount())
{
+ bool bIsExitAfterPresenting = mpSlideShow->IsExitAfterPresenting();
+ mpSlideShow->SetExitAfterPresenting(false);
mpSlideShow->end();
+ mpSlideShow->SetExitAfterPresenting(bIsExitAfterPresenting);
// The following piece of code should not be here because the
// slide show should be aware of the existence of the presenter
diff --git a/sd/source/ui/slideshow/slideshow.cxx b/sd/source/ui/slideshow/slideshow.cxx
index 594aaa2a7be9..279bd8b45445 100644
--- a/sd/source/ui/slideshow/slideshow.cxx
+++ b/sd/source/ui/slideshow/slideshow.cxx
@@ -147,16 +147,12 @@ SlideShow::SlideShow( SdDrawDocument* pDoc )
{
}
-
-
-void SlideShow::ThrowIfDisposed() throw (RuntimeException)
+void SlideShow::ThrowIfDisposed() const throw (RuntimeException)
{
if( mpDoc == 0 )
throw DisposedException();
}
-
-
/// used by the model to create a slideshow for it
rtl::Reference< SlideShow > SlideShow::Create( SdDrawDocument* pDoc )
{
@@ -679,6 +675,20 @@ WorkWindow *SlideShow::GetWorkWindow()
return dynamic_cast<WorkWindow*>(pShell->GetViewFrame()->GetTopFrame().GetWindow().GetParent());
}
+bool SlideShow::IsExitAfterPresenting() const
+{
+ SolarMutexGuard aGuard;
+ ThrowIfDisposed();
+ return mpDoc->IsExitAfterPresenting();
+}
+
+void SlideShow::SetExitAfterPresenting(bool bExit)
+{
+ SolarMutexGuard aGuard;
+ ThrowIfDisposed();
+ mpDoc->SetExitAfterPresenting(bExit);
+}
+
void SAL_CALL SlideShow::end()
throw (RuntimeException, std::exception)
{
/svx/source/svdraw/svddrgmt.cxx?h=cp-6.0-13&id=6fc92adb8f89e653fd733e77ab24b4fcffe6a909'>convert SdrHdlKind to scoped enumNoel Grandin 2016-08-19convert SdrUserCallType to scoped enumNoel Grandin 2016-08-19convert SdrCrookMode to scoped enumNoel Grandin