Kaydet (Commit) 8af09bf3 authored tarafından Cédric Bosdonnat's avatar Cédric Bosdonnat Kaydeden (comit) Cédric Bosdonnat

n#777699: Clip the objects to the pagewe are painting

Change-Id: I78ac7de5346a2adea9a2c6cf3cbb0321e05d79dc
üst e598ab04
...@@ -181,7 +181,8 @@ public: ...@@ -181,7 +181,8 @@ public:
// write access to mpPreparedPageWindow // write access to mpPreparedPageWindow
void setPreparedPageWindow(SdrPageWindow* pKnownTarget); void setPreparedPageWindow(SdrPageWindow* pKnownTarget);
void DrawLayer(SdrLayerID nID, OutputDevice* pGivenTarget = 0, sdr::contact::ViewObjectContactRedirector* pRedirector = 0L) const; void DrawLayer(SdrLayerID nID, OutputDevice* pGivenTarget = 0, sdr::contact::ViewObjectContactRedirector* pRedirector = 0L,
const Rectangle& rRect = Rectangle()) const;
void DrawPageViewGrid(OutputDevice& rOut, const Rectangle& rRect, Color aColor = Color( COL_BLACK ) ); void DrawPageViewGrid(OutputDevice& rOut, const Rectangle& rRect, Color aColor = Color( COL_BLACK ) );
Rectangle GetPageRect() const; Rectangle GetPageRect() const;
......
...@@ -346,7 +346,7 @@ void SdrPageView::setPreparedPageWindow(SdrPageWindow* pKnownTarget) ...@@ -346,7 +346,7 @@ void SdrPageView::setPreparedPageWindow(SdrPageWindow* pKnownTarget)
mpPreparedPageWindow = pKnownTarget; mpPreparedPageWindow = pKnownTarget;
} }
void SdrPageView::DrawLayer(SdrLayerID nID, OutputDevice* pGivenTarget, sdr::contact::ViewObjectContactRedirector* pRedirector) const void SdrPageView::DrawLayer(SdrLayerID nID, OutputDevice* pGivenTarget, sdr::contact::ViewObjectContactRedirector* pRedirector, const Rectangle& rRect) const
{ {
if(GetPage()) if(GetPage())
{ {
...@@ -374,7 +374,10 @@ void SdrPageView::DrawLayer(SdrLayerID nID, OutputDevice* pGivenTarget, sdr::con ...@@ -374,7 +374,10 @@ void SdrPageView::DrawLayer(SdrLayerID nID, OutputDevice* pGivenTarget, sdr::con
// Copy existing paint region to use the same as prepared in BeginDrawLayer // Copy existing paint region to use the same as prepared in BeginDrawLayer
SdrPaintWindow& rExistingPaintWindow = pPreparedTarget->GetPaintWindow(); SdrPaintWindow& rExistingPaintWindow = pPreparedTarget->GetPaintWindow();
const Region& rExistingRegion = rExistingPaintWindow.GetRedrawRegion(); const Region& rExistingRegion = rExistingPaintWindow.GetRedrawRegion();
aTemporaryPaintWindow.SetRedrawRegion(rExistingRegion); if ( rRect.IsEmpty() )
aTemporaryPaintWindow.SetRedrawRegion(rExistingRegion);
else
aTemporaryPaintWindow.SetRedrawRegion(Region(rRect));
// patch the ExistingPageWindow // patch the ExistingPageWindow
pPreparedTarget->patchPaintWindow(aTemporaryPaintWindow); pPreparedTarget->patchPaintWindow(aTemporaryPaintWindow);
......
...@@ -3122,7 +3122,7 @@ SwRootFrm::Paint(SwRect const& rRect, SwPrintData const*const pPrintData) const ...@@ -3122,7 +3122,7 @@ SwRootFrm::Paint(SwRect const& rRect, SwPrintData const*const pPrintData) const
const IDocumentDrawModelAccess* pIDDMA = pSh->getIDocumentDrawModelAccess(); const IDocumentDrawModelAccess* pIDDMA = pSh->getIDocumentDrawModelAccess();
pSh->Imp()->PaintLayer( pIDDMA->GetHellId(), pSh->Imp()->PaintLayer( pIDDMA->GetHellId(),
pPrintData, pPrintData,
aPaintRect, pPage->Frm(),
&aPageBackgrdColor, &aPageBackgrdColor,
(pPage->IsRightToLeft() ? true : false), (pPage->IsRightToLeft() ? true : false),
&aSwRedirector ); &aSwRedirector );
...@@ -3166,7 +3166,7 @@ SwRootFrm::Paint(SwRect const& rRect, SwPrintData const*const pPrintData) const ...@@ -3166,7 +3166,7 @@ SwRootFrm::Paint(SwRect const& rRect, SwPrintData const*const pPrintData) const
// OD 09.12.2002 #103045# - add 4th parameter for horizontal text direction. // OD 09.12.2002 #103045# - add 4th parameter for horizontal text direction.
pSh->Imp()->PaintLayer( pSh->GetDoc()->GetHeavenId(), pSh->Imp()->PaintLayer( pSh->GetDoc()->GetHeavenId(),
pPrintData, pPrintData,
aPaintRect, pPage->Frm(),
&aPageBackgrdColor, &aPageBackgrdColor,
(pPage->IsRightToLeft() ? true : false), (pPage->IsRightToLeft() ? true : false),
&aSwRedirector ); &aSwRedirector );
......
...@@ -97,7 +97,7 @@ void SwViewImp::UnlockPaint() ...@@ -97,7 +97,7 @@ void SwViewImp::UnlockPaint()
void SwViewImp::PaintLayer( const SdrLayerID _nLayerID, void SwViewImp::PaintLayer( const SdrLayerID _nLayerID,
SwPrintData const*const pPrintData, SwPrintData const*const pPrintData,
const SwRect& , const SwRect& aPaintRect,
const Color* _pPageBackgrdColor, const Color* _pPageBackgrdColor,
const bool _bIsPageRightToLeft, const bool _bIsPageRightToLeft,
sdr::contact::ViewObjectContactRedirector* pRedirector ) const sdr::contact::ViewObjectContactRedirector* pRedirector ) const
...@@ -150,7 +150,7 @@ void SwViewImp::PaintLayer( const SdrLayerID _nLayerID, ...@@ -150,7 +150,7 @@ void SwViewImp::PaintLayer( const SdrLayerID _nLayerID,
SdrView &rSdrView = const_cast< SdrView & >(GetPageView()->GetView()); SdrView &rSdrView = const_cast< SdrView & >(GetPageView()->GetView());
rSdrView.setHideDraw( !pPrintData->IsPrintDraw() ); rSdrView.setHideDraw( !pPrintData->IsPrintDraw() );
} }
GetPageView()->DrawLayer( _nLayerID, pOutDev, pRedirector ); GetPageView()->DrawLayer( _nLayerID, pOutDev, pRedirector, aPaintRect.SVRect() );
pOutDev->Pop(); pOutDev->Pop();
// reset background color of the outliner & default horiz. text dir. // reset background color of the outliner & default horiz. text dir.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment