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

Miklos Vajna vmiklos at collabora.co.uk
Wed Apr 1 05:38:53 PDT 2015


 svx/source/svdraw/svdpntv.cxx |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit ff6c8114e3f0ddde8985be836e1e92c9b8e516d9
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Wed Apr 1 14:33:16 2015 +0200

    SdrPaintView tiled rendering: ignore visual area
    
    With this, a number of so far missing images properly show up in Draw
    and Impress.
    
    Images are loaded asynchronously, and the AsynchGraphicLoadingEvent is
    registered in the SdrPageWindow. This means that in case the event is
    registered in the temporary page window that's created by
    SdrPageView::CompleteRedraw(), invoked by paintTile() call, then
    chances are high that the page window will be destructed earlier than
    the scheduler would execute the async event. This leads to missing
    images.
    
    Fix the problem by not ignororing Invalidate() calls depending on what
    core thinks is a visible area: then the view that is an sd::Window will
    also try to do the async image loading, and that will be actually
    executed properly.
    
    Change-Id: Icf5fd772b66c31d3876bf3673ba5e283c7e08083

diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
index 5c7de98..c50ba58 100644
--- a/svx/source/svdraw/svdpntv.cxx
+++ b/svx/source/svdraw/svdpntv.cxx
@@ -957,7 +957,8 @@ void SdrPaintView::InvalidateAllWin(const Rectangle& rRect, bool bPlus1Pix)
             aOrg.X()=-aOrg.X(); aOrg.Y()=-aOrg.Y();
             Rectangle aOutRect(aOrg, rOutDev.GetOutputSize());
 
-            if (aRect.IsOver(aOutRect))
+            // In case of tiled rendering we want to get all invalidations, so visual area is not interesting.
+            if (aRect.IsOver(aOutRect) || GetModel()->isTiledRendering())
             {
                 InvalidateOneWin(static_cast<vcl::Window&>(rOutDev), aRect);
             }


More information about the Libreoffice-commits mailing list