diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-03-23 14:08:31 +0100 |
---|---|---|
committer | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2012-04-24 13:37:02 +0200 |
commit | 1a34e28c9f80542bb8c0b120421f7a02832ad038 (patch) | |
tree | 95239332055a96a8472d6c98efd3aad2f62838c8 | |
parent | 9d646e9e331ca23853ec04d044ae8c1ea42346e3 (diff) |
fdo#42750 fdo#45562 fdo#47717: border paint ordering:
Paint borders after subsidiary lines and hell layer, but before heaven
layer.
(cherry picked from commit 1024c172a5bfb3d85a86fcf7a046aa2b03950edd)
Signed-off-by: Caolán McNamara <caolanm@redhat.com>
Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
Signed-off-by: Cédric Bosdonnat <cedric.bosdonnat@free.fr>
-rwxr-xr-x | 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 69e32ff3978b..435571a01db2 100755 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -231,9 +231,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(); } }; @@ -3002,6 +3005,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() ) { @@ -3018,14 +3031,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(); |