summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-04-01 14:33:16 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-04-07 09:18:07 +0200
commit6448e8607ec22fb54acce5941e5ac54a38b83452 (patch)
treeadfd0923ee7b74720ae25b89c388e9bfa5c41540 /svx
parent267fd94a512336f3892110ec8d76cde60b7a61c3 (diff)
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
Diffstat (limited to 'svx')
-rw-r--r--svx/source/svdraw/svdpntv.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
index 5c7de983fc31..c50ba5876059 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);
}