diff options
author | Andre Fischer <af@openoffice.org> | 2009-10-14 12:38:02 +0000 |
---|---|---|
committer | Andre Fischer <af@openoffice.org> | 2009-10-14 12:38:02 +0000 |
commit | 5caa4326854d346e40b9d052255effa446e54513 (patch) | |
tree | 482afd57dd05d92b5ec7c3d5af3e24bf2766a675 /slideshow/source/engine/slideshowimpl.cxx | |
parent | 8918d0a78627c4e85fcbc0aa6bdf2e2878dff7a2 (diff) |
#i48179# Fixed stepping back for animations with active auto_reverse.
Diffstat (limited to 'slideshow/source/engine/slideshowimpl.cxx')
-rw-r--r-- | slideshow/source/engine/slideshowimpl.cxx | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/slideshow/source/engine/slideshowimpl.cxx b/slideshow/source/engine/slideshowimpl.cxx index 45b94ac26501..b042014af9c6 100644 --- a/slideshow/source/engine/slideshowimpl.cxx +++ b/slideshow/source/engine/slideshowimpl.cxx @@ -71,6 +71,7 @@ #include <com/sun/star/animations/TransitionType.hpp> #include <com/sun/star/animations/TransitionSubType.hpp> #include <com/sun/star/presentation/XSlideShow.hpp> +#include <com/sun/star/presentation/XSlideShowListener.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/lang/XServiceName.hpp> #include <com/sun/star/loader/CannotActivateFactoryException.hpp> @@ -509,11 +510,14 @@ struct SlideShowImpl::SeparateListenerImpl : public EventHandler, // directly, but queue an event. handleEvent() // might be called from e.g. // showNext(), and notifySlideAnimationsEnded() must not be called - // in recursion. - mrEventQueue.addEvent( - makeEvent( boost::bind( &SlideShowImpl::notifySlideAnimationsEnded, - boost::ref(mrShow) ), - "SlideShowImpl::notifySlideAnimationsEnded")); + // in recursion. Note that the event is scheduled for the next + // frame so that its expensive execution does not come in between + // sprite hiding and shape redraw (at the end of the animation of a + // shape), which would cause a flicker. + mrEventQueue.addEventForNextRound( + makeEvent( + boost::bind( &SlideShowImpl::notifySlideAnimationsEnded, boost::ref(mrShow) ), + "SlideShowImpl::notifySlideAnimationsEnded")); return true; } @@ -2079,7 +2083,7 @@ void SlideShowImpl::notifySlideEnded (const bool bReverse) boost::bind( &presentation::XSlideShowListener::slideEnded, _1, - bReverse) ); + bReverse)); } bool SlideShowImpl::notifyHyperLinkClicked( rtl::OUString const& hyperLink ) |