[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