From 89fe9346a5292ddb1ac19ba734034b61e4b628b2 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Tue, 22 Feb 2011 11:23:46 +0000 Subject: fix fdo#34533 - occasional blank first slide in presentation --- sd/source/ui/slideshow/slideshowviewimpl.cxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sd/source/ui/slideshow/slideshowviewimpl.cxx b/sd/source/ui/slideshow/slideshowviewimpl.cxx index 2000ae0c4..fa293b2a7 100644 --- a/sd/source/ui/slideshow/slideshowviewimpl.cxx +++ b/sd/source/ui/slideshow/slideshowviewimpl.cxx @@ -500,7 +500,17 @@ void SlideShowView::updateimpl( ::osl::ClearableMutexGuard& rGuard, SlideshowImp if( pSlideShow ) { ::rtl::Reference< SlideshowImpl > aSLGuard( pSlideShow ); - rGuard.clear(); + + if( mbFirstPaint ) + { + mbFirstPaint = false; + SlideshowImpl* pSlideShow = mpSlideShow; + rGuard.clear(); + if( pSlideShow ) + pSlideShow->onFirstPaint(); + } else + rGuard.clear(); + pSlideShow->startUpdateTimer(); } } -- cgit v1.2.3 -- cgit v1.2.3 From d53f1f6ee9f02d3d77c76910023986f7f346fc30 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Fri, 18 Mar 2011 13:19:59 +0100 Subject: Fix fdo#33947 crash in Impress after printing Fixes lifetime issue with DrawViewShell - solved by not handing one in to the print preview DocumentRenderer Signed-off-by: Thorsten Behrens --- sd/source/ui/view/DocumentRenderer.cxx | 2 +- sd/source/ui/view/drawview.cxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx index 15461c060..5b6923c90 100644 --- a/sd/source/ui/view/DocumentRenderer.cxx +++ b/sd/source/ui/view/DocumentRenderer.cxx @@ -1329,7 +1329,7 @@ public: ::boost::dynamic_pointer_cast(mrBase.GetMainViewShell())); if ( ! mpPrintView) - mpPrintView.reset(new DrawView(mrBase.GetDocShell(), &rPrinter, pDrawViewShell.get())); + mpPrintView.reset(new DrawView(mrBase.GetDocShell(), &rPrinter, NULL)); if (nIndex<0 || sal::static_int_cast(nIndex)>=maPrinterPages.size()) return; diff --git a/sd/source/ui/view/drawview.cxx b/sd/source/ui/view/drawview.cxx index ea0158687..40ca3a3aa 100644 --- a/sd/source/ui/view/drawview.cxx +++ b/sd/source/ui/view/drawview.cxx @@ -550,7 +550,7 @@ BOOL DrawView::IsObjMarkable(SdrObject* pObj, SdrPageView* pPV) const void DrawView::MakeVisible(const Rectangle& rRect, ::Window& rWin) { - if (!rRect.IsEmpty()) + if (!rRect.IsEmpty() && mpDrawViewShell) { mpDrawViewShell->MakeVisible(rRect, rWin); } -- cgit v1.2.3