summaryrefslogtreecommitdiff
path: root/slideshow
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2013-01-28 20:03:20 +1100
committerThorsten Behrens <tbehrens@suse.com>2013-01-28 17:29:44 +0100
commitf07efaa3bbeb6c2160d6ccbe83ea4183df7115a3 (patch)
tree358705785d341be0e0db7a7345639015952227ff /slideshow
parent66cb07cf28186840b8e32d1260b522b5bc7937ea (diff)
fdo#59881 - sdremote: give up on threaded / UNO usage.
Process incoming commands in the main thread in a Timeout, build thumbnail / previews there too - to avoid the deadlocks mentioned in the bug. (cherry picked from commit 58b05ce98e72fe47bdca02d2dabea20c36a494bf) Change-Id: I5f5e8d6fbc2e059d4194f72f3e086e1aa87ab2cc Signed-off-by: Thorsten Behrens <tbehrens@suse.com>
Diffstat (limited to 'slideshow')
-rw-r--r--slideshow/source/engine/slideshowimpl.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/slideshow/source/engine/slideshowimpl.cxx b/slideshow/source/engine/slideshowimpl.cxx
index cf672ae296ac..d3cdbbea6ae7 100644
--- a/slideshow/source/engine/slideshowimpl.cxx
+++ b/slideshow/source/engine/slideshowimpl.cxx
@@ -2131,7 +2131,7 @@ sal_Bool SlideShowImpl::update( double & nNextTimeout )
void SlideShowImpl::notifySlideTransitionEnded( bool bPaintSlide )
{
- osl::MutexGuard const guard( m_aMutex );
+ osl::ResettableMutexGuard guard( m_aMutex );
OSL_ENSURE( !isDisposed(), "### already disposed!" );
OSL_ENSURE( mpCurrentSlide,
@@ -2144,6 +2144,10 @@ void SlideShowImpl::notifySlideTransitionEnded( bool bPaintSlide )
// the chance to register SlideStartEvents
const bool bBackgroundLayerRendered( !bPaintSlide );
mpCurrentSlide->show( bBackgroundLayerRendered );
+
+ uno::Reference<presentation::XSlideShow> xThis(
+ static_cast< presentation::XSlideShow * >( this ), uno::UNO_QUERY_THROW );
+ guard.reset(); // unlock
maEventMultiplexer.notifySlideStartEvent();
}
}