[Libreoffice-commits] core.git: Branch 'feature/tiled-editing' - 2 commits - sw/source

Miklos Vajna vmiklos at collabora.co.uk
Thu Jan 15 01:39:22 PST 2015


 sw/source/core/view/viewsh.cxx |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

New commits:
commit efdde4aab5227aa81795abc596096e0826ec8f0e
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Jan 15 10:34:13 2015 +0100

    SwViewShell: make sure no callback is fired during PaintTile()
    
    When the invalidation callback is invoked, we call PaintTile() for each
    tile that is affected by the invalidated rectangle. Make sure
    PaintTile() doesn't result in new invalidations generated by itself,
    to avoid infinite loops.
    
    Change-Id: I593726bd7e72028f26103829831949f000665e95

diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index a34afe6..859c5c5 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -1776,6 +1776,8 @@ void SwViewShell::PaintTile(VirtualDevice &rDevice, int contextWidth, int contex
     OutputDevice *pSaveOut = mpOut;
     bool bTiledRendering = mbTiledRendering;
     mbTiledRendering = true;
+    LibreOfficeKitCallback pCallback = mpLibreOfficeKitCallback;
+    mpLibreOfficeKitCallback = 0;
     mpOut = &rDevice;
 
     // resizes the virtual device so to contain the entrie context
@@ -1823,6 +1825,7 @@ void SwViewShell::PaintTile(VirtualDevice &rDevice, int contextWidth, int contex
 
     // SwViewShell's output device tear down
     mpOut = pSaveOut;
+    mpLibreOfficeKitCallback = pCallback;
     mbTiledRendering = bTiledRendering;
 
     static bool bDebug = getenv("SW_DEBUG_TILEDRENDERING") != 0;
commit 63c5186580b420d8b59bbc23735c2bfa00956da6
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Jan 15 10:33:42 2015 +0100

    SwViewShell::InvalidateWindows: when tiled rendering, ignore visual area
    
    Change-Id: I9b40a32e08f4472b75a236e2720ecbe5927117fb

diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index ac1f3e0..a34afe6 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -543,7 +543,9 @@ void SwViewShell::InvalidateWindows( const SwRect &rRect )
             {
                 if ( rSh.IsPreview() )
                     ::RepaintPagePreview( &rSh, rRect );
-                else if ( rSh.VisArea().IsOver( rRect ) )
+                // In case of tiled rendering, invalidation is wanted even if
+                // the rectangle is outside the visual area.
+                else if ( rSh.VisArea().IsOver( rRect ) || rSh.isTiledRendering() )
                     rSh.GetWin()->Invalidate( rRect.SVRect() );
             }
         }


More information about the Libreoffice-commits mailing list