From 7a6ae7ff20a0b26a083c13649712635758797c15 Mon Sep 17 00:00:00 2001 From: Cédric Bosdonnat Date: Wed, 21 Sep 2011 09:51:51 +0200 Subject: Page Break: decouple it from the text bounding lines painting --- sw/source/core/inc/layfrm.hxx | 2 +- sw/source/core/layout/paintfrm.cxx | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'sw') diff --git a/sw/source/core/inc/layfrm.hxx b/sw/source/core/inc/layfrm.hxx index 5300ba8f46a3..4d5d3e8ac51c 100644 --- a/sw/source/core/inc/layfrm.hxx +++ b/sw/source/core/inc/layfrm.hxx @@ -170,7 +170,7 @@ public: const SwFrm* GetLastLower() const; inline SwFrm* GetLastLower(); - virtual void PaintBreak() const{ }; + virtual void PaintBreak() const; }; //Um doppelte Implementierung zu sparen wird hier ein bischen gecasted diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index f3db9856493b..a03701f62e60 100755 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -3006,6 +3006,7 @@ SwRootFrm::Paint(SwRect const& rRect, SwPrintData const*const pPrintData) const } pPage->PaintDecorators( ); + pPage->PaintBreak(); } else if ( bBookMode && pSh->GetWin() && !pSh->GetDoc()->GetDocShell()->IsInPlaceActive() ) { @@ -3385,6 +3386,7 @@ void SwPageFrm::PaintBreak( ) const ProcessPrimitives( aSeq ); } } + SwLayoutFrm::PaintBreak( ); } } @@ -3474,6 +3476,17 @@ void SwColumnFrm::PaintBreak( ) const } } +void SwLayoutFrm::PaintBreak( ) const +{ + const SwFrm* pFrm = Lower(); + while ( pFrm ) + { + if ( pFrm->IsLayoutFrm() ) + static_cast< const SwLayoutFrm*>( pFrm )->PaintBreak( ); + pFrm = pFrm->GetNext(); + } +} + void SwPageFrm::PaintDecorators( ) const { SwWrtShell* pWrtSh = dynamic_cast< SwWrtShell* >( pGlobalShell ); @@ -6377,8 +6390,6 @@ void SwPageFrm::PaintSubsidiaryLines( const SwPageFrm *, ProcessPrimitives( lcl_CreatePageAreaDelimiterPrimitives( aArea ) ); } - - PaintBreak(); } void SwColumnFrm::PaintSubsidiaryLines( const SwPageFrm *, @@ -6415,8 +6426,6 @@ void SwColumnFrm::PaintSubsidiaryLines( const SwPageFrm *, ::SwAlignRect( aArea, pGlobalShell ); ProcessPrimitives( lcl_CreateColumnAreaDelimiterPrimitives( aArea ) ); - - PaintBreak(); } void SwSectionFrm::PaintSubsidiaryLines( const SwPageFrm * pPage, -- cgit