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

Miklos Vajna vmiklos at collabora.co.uk
Fri Jul 3 05:46:36 PDT 2015


 sw/source/core/view/viewsh.cxx |    3 +++
 1 file changed, 3 insertions(+)

New commits:
commit 978033d5ed9f93f2d5d9a1ba44acf6b37bc13bfe
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Fri Jul 3 11:52:17 2015 +0200

    SwViewShell::DLPrePaint2: fix missing clipping for the non-buffered case
    
    With this, if the sw window is small enough that the page shadow is
    supposed to be under the sidebar, we no longer paint the shadow over the
    sidebar.
    
    In the non-double-buffered case the output is a window, so
    SdrPaintWindow::PreparePreRenderDevice() does its own buffering, and
    clipping is taken care of when that buffer is copied to the window in
    SdrPreRenderDevice::OutputPreRenderDevice().
    
    This wasn't a problem before, as either the output was a non-screen
    device or UI elements were painted (like the sidebar), but never both at
    the same time.
    
    Change-Id: Ic02c814fc4deeea86c245c74bd69656533d9f835

diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index 3e77cf1..0f27fc5 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -203,6 +203,9 @@ void SwViewShell::DLPrePaint2(const vcl::Region& rRegion)
             mpBufferedOut = mpOut;
             mpOut = &(mpTargetPaintWindow->GetTargetOutputDevice());
         }
+        else
+            // In case mpOut is used without buffering, need to set clipping.
+            mpOut->SetClipRegion(rRegion);
 
         // remember original paint MapMode for wrapped FlyFrame paints
         maPrePostMapMode = mpOut->GetMapMode();


More information about the Libreoffice-commits mailing list