summaryrefslogtreecommitdiff
path: root/svx/source/svdraw/svdpagv.cxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2007-01-22 14:17:10 +0000
committerOliver Bolte <obo@openoffice.org>2007-01-22 14:17:10 +0000
commitbc3bed30ed2609c4b51ce5ba9ccad1a6e41aedfe (patch)
tree9c3d02301558c3d9fd6756e7ea7005cbf78faf30 /svx/source/svdraw/svdpagv.cxx
parent921ec84121359a62a876eabace37220b45e9b84f (diff)
INTEGRATION: CWS aw039 (1.54.42); FILE MERGED
2007/01/02 13:36:14 aw 1.54.42.1: #i72752# copy existing PaintRegion wen painting layers to an unknown device
Diffstat (limited to 'svx/source/svdraw/svdpagv.cxx')
-rw-r--r--svx/source/svdraw/svdpagv.cxx16
1 files changed, 14 insertions, 2 deletions
diff --git a/svx/source/svdraw/svdpagv.cxx b/svx/source/svdraw/svdpagv.cxx
index 471d8cce777e..2f3438d500c8 100644
--- a/svx/source/svdraw/svdpagv.cxx
+++ b/svx/source/svdraw/svdpagv.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: svdpagv.cxx,v $
*
- * $Revision: 1.54 $
+ * $Revision: 1.55 $
*
- * last change: $Author: vg $ $Date: 2006-11-21 16:56:58 $
+ * last change: $Author: obo $ $Date: 2007-01-22 15:17:10 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -476,6 +476,18 @@ void SdrPageView::DrawLayer(SdrLayerID nID, OutputDevice* pGivenTarget, sal_uInt
SdrPaintWindow aTemporaryPaintWindow(mrView, *pGivenTarget);
SdrPageWindow aTemporaryPageWindow(*((SdrPageView*)this), aTemporaryPaintWindow);
+ // #i72752#
+ // Copy existing paint region if other PageWindows exist, this was created by
+ // PrepareRedraw() from BeginDrawLayer(). Needs to be used e.g. when suddenly SW
+ // paints into an unknown device other than the view was created for (e.g. VirtualDevice)
+ if(PageWindowCount())
+ {
+ SdrPageWindow* pExistingPageWindow = GetPageWindow(0L);
+ SdrPaintWindow& rExistingPaintWindow = pExistingPageWindow->GetPaintWindow();
+ const Region& rExistingRegion = rExistingPaintWindow.GetRedrawRegion();
+ aTemporaryPaintWindow.SetRedrawRegion(rExistingRegion);
+ }
+
aTemporaryPageWindow.RedrawLayer(nPaintMode, &nID, pRedirector);
}
}