[Libreoffice-commits] core.git: svx/source

Michael Stahl mstahl at redhat.com
Fri Oct 24 09:16:34 PDT 2014


 svx/source/sdr/contact/objectcontactofpageview.cxx |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

New commits:
commit 1df0656c4bb139606081625fb19e39fbef9f8890
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Oct 24 17:58:27 2014 +0200

    fdo#83664: svx: don't try to paint on empty OutputDevice
    
    ObjectContactOfPageView::DoProcessDisplay() initalizes an empty
    aViewRange, which later code assumes to mean "paint everything", but
    actually the OutputDevice has 0 size so nothing can be painted.
    
    Change-Id: I1e47e8d38c1fad5e08027bb76fce4b54c5b3358b

diff --git a/svx/source/sdr/contact/objectcontactofpageview.cxx b/svx/source/sdr/contact/objectcontactofpageview.cxx
index 6fd3674..390c5bd 100644
--- a/svx/source/sdr/contact/objectcontactofpageview.cxx
+++ b/svx/source/sdr/contact/objectcontactofpageview.cxx
@@ -141,6 +141,15 @@ namespace sdr
         // OutputDevices then the given ones.
         void ObjectContactOfPageView::DoProcessDisplay(DisplayInfo& rDisplayInfo)
         {
+            OutputDevice& rTargetOutDev = GetPageWindow().GetPaintWindow().GetTargetOutputDevice();
+            const Size aOutputSizePixel(rTargetOutDev.GetOutputSizePixel());
+            if (!isOutputToRecordingMetaFile() // do those have outdev too?
+                && (0 == aOutputSizePixel.getWidth() ||
+                    0 == aOutputSizePixel.getHeight()))
+            {
+                return;
+            }
+
             // visualize entered group when that feature is switched on and it's not
             // a print output. #i29129# No ghosted display for printing.
             bool bVisualizeEnteredGroup(DoVisualizeEnteredGroup() && !isOutputToPrinter());
@@ -170,7 +179,6 @@ namespace sdr
 
             // update current ViewInformation2D at the ObjectContact
             const double fCurrentTime(getPrimitiveAnimator().GetTime());
-            OutputDevice& rTargetOutDev = GetPageWindow().GetPaintWindow().GetTargetOutputDevice();
             basegfx::B2DRange aViewRange;
 
             // create ViewRange
@@ -194,7 +202,6 @@ namespace sdr
             else
             {
                 // use visible pixels, but transform to world coordinates
-                const Size aOutputSizePixel(rTargetOutDev.GetOutputSizePixel());
                 aViewRange = basegfx::B2DRange(0.0, 0.0, aOutputSizePixel.getWidth(), aOutputSizePixel.getHeight());
 
                 // if a clip region is set, use it


More information about the Libreoffice-commits mailing list