From 19b3e9e92895f20020001fb53c3483416a09556e Mon Sep 17 00:00:00 2001 From: "Philipp Lohmann [pl]" Date: Wed, 21 Jul 2010 16:03:55 +0200 Subject: vcl114: #i105434# solve a scaling issue --- sd/source/ui/view/DocumentRenderer.cxx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx index 0689dc0e3851..0ba6a001311c 100755 --- a/sd/source/ui/view/DocumentRenderer.cxx +++ b/sd/source/ui/view/DocumentRenderer.cxx @@ -1224,6 +1224,7 @@ public: return; bool bIsValueChanged = processProperties( rOptions ); + bool bIsPaperChanged = false; // The RenderDevice property is handled specially: its value is // stored in mpPrinter instead of being retrieved on demand. @@ -1235,14 +1236,21 @@ public: VCLXDevice* pDevice = VCLXDevice::GetImplementation(xRenderDevice); OutputDevice* pOut = pDevice ? pDevice->GetOutputDevice() : NULL; mpPrinter = dynamic_cast(pOut); + Size aPageSizePixel = mpPrinter ? mpPrinter->GetPaperSizePixel() : Size(); + if( aPageSizePixel != maPrinterPageSizePixel ) + { + bIsPaperChanged = true; + maPrinterPageSizePixel = aPageSizePixel; + } } if (bIsValueChanged) { if ( ! mpOptions ) mpOptions.reset(new PrintOptions(*this, maSlidesPerPage)); - PreparePages(); } + if( bIsValueChanged || bIsPaperChanged ) + PreparePages(); } @@ -1372,6 +1380,7 @@ private: ViewShellBase& mrBase; bool mbIsDisposed; Printer* mpPrinter; + Size maPrinterPageSizePixel; ::boost::scoped_ptr mpOptions; ::std::vector< ::boost::shared_ptr< ::sd::PrinterPage> > maPrinterPages; ::boost::scoped_ptr mpPrintView; -- cgit