sw/source/core/view/viewsh.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
New commits: commit efdde4aab5227aa81795abc596096e0826ec8f0e Author: Miklos Vajna <vmik...@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 <vmik...@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() ); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits