summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-02-17 12:16:54 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-02-19 09:33:06 +0000
commit010cd7e81ef0f8c524ff764eed80e746caa1d94c (patch)
tree9e399e79c759a872b3b7de723a11a40705357a63
parent8e1a8b25df15257ae0199671ecfc39285f93fec7 (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>
-rw-r--r--sw/source/core/layout/paintfrm.cxx13
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() );
}