diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-08-10 09:14:27 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-08-10 09:17:12 +0200 |
commit | d48d0e81971266ff4625721b0f069a62ec7014e2 (patch) | |
tree | cb9817f21b030b56053680bc2fff63eff11f347e | |
parent | 78a11f79d8eb5cd1d2b18c288852dec7e3d57a21 (diff) |
tdf#87922 SwDrawTextInfo::ApplyAutoColor: handle fill attributes
With this, if page background is set to e.g. black, then automatic color
of text is again white, not black.
Change-Id: I8246fa4b7834f60872b0737f03906ccc86948cc1
-rw-r--r-- | sw/source/core/txtnode/fntcache.cxx | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx index a106cbdf1172..fba875c87a1d 100644 --- a/sw/source/core/txtnode/fntcache.cxx +++ b/sw/source/core/txtnode/fntcache.cxx @@ -47,6 +47,7 @@ #include <swmodule.hxx> #include <accessibilityoptions.hxx> #include <svtools/accessibilityoptions.hxx> +#include <svx/sdr/attribute/sdrallfillattributeshelper.hxx> #include <doc.hxx> #include <editeng/fhgtitem.hxx> #include <docsh.hxx> @@ -2521,6 +2522,7 @@ bool SwDrawTextInfo::ApplyAutoColor( vcl::Font* pFont ) { // check if current background has a user defined setting const Color* pCol = GetFont() ? GetFont()->GetBackColor() : NULL; + Color aColor; if( ! pCol || COL_TRANSPARENT == pCol->GetColor() ) { const SvxBrushItem* pItem; @@ -2537,6 +2539,14 @@ bool SwDrawTextInfo::ApplyAutoColor( vcl::Font* pFont ) /// is a background brush and its color is *not* "no fill"/"auto fill". if( GetFrm()->GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, false ) ) { + if (aFillAttributes.get() && aFillAttributes->isUsed()) + { + // First see if fill atttributes provide a color. + aColor = Color(aFillAttributes->getAverageColor(aGlobalRetoucheColor.getBColor())); + pCol = &aColor; + } + + // If not, then fall back to the old brush item. if ( !pCol ) { pCol = &pItem->GetColor(); |