diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-03-23 14:08:31 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-03-23 15:37:21 +0100 |
commit | 1024c172a5bfb3d85a86fcf7a046aa2b03950edd (patch) | |
tree | 10bcdfbfe9ec86a8067e0b9ae96190df2ff046ee | |
parent | 35fe6b9587a22e9faa669ebab05bf577f09a3438 (diff) |
fdo#42750 fdo#45562 fdo#47717: border paint ordering:
Paint borders after subsidiary lines and hell layer, but before heaven
layer.
-rw-r--r-- | sw/source/core/layout/paintfrm.cxx | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index aa0438bfc74f..a9f60f3cee83 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -223,9 +223,12 @@ public: { m_Lines.push_back(xLine); } - drawinglayer::primitive2d::Primitive2DSequence GetBorderLines() const + drawinglayer::primitive2d::Primitive2DSequence GetBorderLines_Clear() { - return m_Lines.getAsConstList(); + ::comphelper::SequenceAsVector< + ::drawinglayer::primitive2d::Primitive2DReference> lines; + ::std::swap(m_Lines, lines); + return lines.getAsConstList(); } }; @@ -3000,6 +3003,16 @@ SwRootFrm::Paint(SwRect const& rRect, SwPrintData const*const pPrintData) const } pLines->PaintLines( pSh->GetOut() ); + if ( pSh->GetWin() ) + { + pSubsLines->PaintSubsidiary( pSh->GetOut(), pLines ); + DELETEZ( pSubsLines ); + DELETEZ( pSpecSubsLines ); + } + // fdo#42750: delay painting these until after subsidiary lines + // fdo#45562: delay painting these until after hell layer + // fdo#47717: but do it before heaven layer + ProcessPrimitives(g_pBorderLines->GetBorderLines_Clear()); if ( pSh->Imp()->HasDrawView() ) { @@ -3016,14 +3029,8 @@ SwRootFrm::Paint(SwRect const& rRect, SwPrintData const*const pPrintData) const if ( bExtraData ) pPage->RefreshExtraData( aPaintRect ); - if ( pSh->GetWin() ) - { - pSubsLines->PaintSubsidiary( pSh->GetOut(), pLines ); - DELETEZ( pSubsLines ); - DELETEZ( pSpecSubsLines ); - } - // fdo#42750: delay painting these until after subsidiary lines - ProcessPrimitives(g_pBorderLines->GetBorderLines()); + // have to paint frame borders added in heaven layer here... + ProcessPrimitives(g_pBorderLines->GetBorderLines_Clear()); DELETEZ(g_pBorderLines); pVout->Leave(); |