diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-02-17 12:16:54 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-02-20 12:15:05 +0000 |
commit | be3f5f82719930f415b5ca38451e8aa4bcd02027 (patch) | |
tree | e6153cc689af150e1d8bad6d1d6083d5e6bb30b4 | |
parent | 21e6d5e42204e5a3e10de43a2b3ef880f4934aa0 (diff) |
tdf#82661 SwFrm::PaintBackground: handle fill attrs when comparing background
Regression from 7d9bb549d498d6beed2c4050c402d09643febdfa (Related:
i#124638 Second step of DrawingLayer FillAttributes..., 2014-06-02),
should be good enough till SdrAllFillAttributesHelper gets its own
operator ==().
Change-Id: I03f847bc1589e3771790427d9894cc330a7b8dc6
(cherry picked from commit 1e33cd8355eb1d856a1439b4a095e379b3acf0bd)
Reviewed-on: https://gerrit.libreoffice.org/14537
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit 010cd7e81ef0f8c524ff764eed80e746caa1d94c)
Reviewed-on: https://gerrit.libreoffice.org/14564
-rw-r--r-- | sw/source/core/layout/paintfrm.cxx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 0dc99f5a3ac7..84dfcf6dfa9f 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -6436,6 +6436,15 @@ void SwFrm::PaintBaBo( const SwRect& rRect, const SwPageFrm *pPage, pOut->Pop(); } +static bool lcl_compareFillAttributes(const drawinglayer::attribute::SdrAllFillAttributesHelperPtr& pA, const drawinglayer::attribute::SdrAllFillAttributesHelperPtr& pB) +{ + if (pA == pB) + return true; + if (!pA || !pB) + return false; + return pA->getFillAttribute() == pB->getFillAttribute(); +} + /// OD 05.09.2002 #102912# /// Do not paint background for fly frames without a background brush by /// calling <PaintBaBo> at the page or at the fly frame its anchored @@ -6540,8 +6549,8 @@ void SwFrm::PaintBackground( const SwRect &rRect, const SwPageFrm *pPage, ::lcl_CalcBorderRect( aRect, this, rAttrs, false ); if ( (IsTxtFrm() || IsTabFrm()) && GetPrev() ) { - if ( GetPrev()->GetAttrSet()->GetBackground() == - GetAttrSet()->GetBackground() ) + if ( GetPrev()->GetAttrSet()->GetBackground() == GetAttrSet()->GetBackground() && + lcl_compareFillAttributes(GetPrev()->getSdrAllFillAttributesHelper(), getSdrAllFillAttributesHelper())) { aRect.Top( Frm().Top() ); } |