kbrown / rpms / libreoffice

Forked from rpms/libreoffice 2 years ago
Clone

Blame SOURCES/0001-rhbz-1589029-impress-not-showing-text-highlight-in-p.patch

91334d
From 84fd42edf49efd3af6966efb4e326c6fbb37d56f Mon Sep 17 00:00:00 2001
91334d
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
91334d
Date: Mon, 11 Jun 2018 09:00:46 +0100
91334d
Subject: [PATCH] rhbz#1589029 impress not showing text highlight in
91334d
 presentation mode
91334d
91334d
the text hightlighting feature was implemented backed on to the vcl
91334d
TextFillColor feature. TextFillColor fills the background of the bounds
91334d
of the text with that color
91334d
91334d
Likely either the same problem or similar as tdf#93789
91334d
91334d
Change-Id: Iace62cedc49e5f5844ac35d3caa23249b6cb4bc1
91334d
---
91334d
 cppcanvas/source/mtfrenderer/emfplus.cxx      |   2 +
91334d
 cppcanvas/source/mtfrenderer/implrenderer.cxx |   6 +
91334d
 cppcanvas/source/mtfrenderer/textaction.cxx   | 131 +++++++++++++++---
91334d
 cppcanvas/source/mtfrenderer/textaction.hxx   |   1 +
91334d
 4 files changed, 119 insertions(+), 21 deletions(-)
91334d
91334d
diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx
91334d
index 1da733bd9f73..9b5fae31d584 100644
91334d
--- a/cppcanvas/source/mtfrenderer/emfplus.cxx
91334d
+++ b/cppcanvas/source/mtfrenderer/emfplus.cxx
91334d
@@ -1318,6 +1318,7 @@ namespace cppcanvas
91334d
                                         ::Color(),
91334d
                                         ::Size(),
91334d
                                         ::Color(),
91334d
+                                        ::Color(),
91334d
                                         text,
91334d
                                         0,
91334d
                                         stringLength,
91334d
@@ -1633,6 +1634,7 @@ namespace cppcanvas
91334d
                                         ::Color(),
91334d
                                         ::Size(),
91334d
                                         ::Color(),
91334d
+                                        ::Color(),
91334d
                                         text,
91334d
                                         0,
91334d
                                         glyphsCount,
91334d
diff --git a/cppcanvas/source/mtfrenderer/implrenderer.cxx b/cppcanvas/source/mtfrenderer/implrenderer.cxx
91334d
index ad9098defc69..38694caec091 100644
91334d
--- a/cppcanvas/source/mtfrenderer/implrenderer.cxx
91334d
+++ b/cppcanvas/source/mtfrenderer/implrenderer.cxx
91334d
@@ -876,6 +876,7 @@ namespace cppcanvas
91334d
             // TODO(F2): implement all text effects
91334d
             // if( rState.textAlignment );             // TODO(F2): NYI
91334d
 
91334d
+            ::Color aTextFillColor( COL_AUTO );
91334d
             ::Color aShadowColor( COL_AUTO );
91334d
             ::Color aReliefColor( COL_AUTO );
91334d
             ::Size  aShadowOffset;
91334d
@@ -941,6 +942,9 @@ namespace cppcanvas
91334d
                 aReliefColor.SetTransparency( aTextColor.GetTransparency() );
91334d
             }
91334d
 
91334d
+            if (rState.isTextFillColorSet)
91334d
+                aTextFillColor = vcl::unotools::doubleSequenceToColor(rState.textFillColor, xColorSpace);
91334d
+
91334d
             // create the actual text action
91334d
             ActionSharedPtr pTextAction(
91334d
                 TextActionFactory::createTextAction(
91334d
@@ -949,6 +953,7 @@ namespace cppcanvas
91334d
                     aReliefColor,
91334d
                     aShadowOffset,
91334d
                     aShadowColor,
91334d
+                    aTextFillColor,
91334d
                     rString,
91334d
                     nIndex,
91334d
                     nLength,
91334d
@@ -1015,6 +1020,7 @@ namespace cppcanvas
91334d
                             aReliefColor,
91334d
                             aShadowOffset,
91334d
                             aShadowColor,
91334d
+                            aTextFillColor,
91334d
                             aStrikeoutText,
91334d
                             nStartPos,
91334d
                             aStrikeoutText.getLength(),
91334d
diff --git a/cppcanvas/source/mtfrenderer/textaction.cxx b/cppcanvas/source/mtfrenderer/textaction.cxx
91334d
index 51554a2e3595..0c5ef91354e3 100644
91334d
--- a/cppcanvas/source/mtfrenderer/textaction.cxx
91334d
+++ b/cppcanvas/source/mtfrenderer/textaction.cxx
91334d
@@ -472,7 +472,7 @@ namespace cppcanvas
91334d
                 virtual ~TextRenderer() {}
91334d
 
91334d
                 /// Render text with given RenderState
91334d
-                virtual bool operator()( const rendering::RenderState& rRenderState ) const = 0;
91334d
+                virtual bool operator()( const rendering::RenderState& rRenderState, const ::Color& rTextFillColor ) const = 0;
91334d
             };
91334d
 
91334d
             /** Render effect text.
91334d
@@ -489,7 +489,8 @@ namespace cppcanvas
91334d
                                    const ::Color&                               rShadowColor,
91334d
                                    const ::basegfx::B2DSize&                    rShadowOffset,
91334d
                                    const ::Color&                               rReliefColor,
91334d
-                                   const ::basegfx::B2DSize&                    rReliefOffset )
91334d
+                                   const ::basegfx::B2DSize&                    rReliefOffset,
91334d
+                                   const ::Color&                               rTextFillColor )
91334d
             {
91334d
                 ::Color aEmptyColor( COL_AUTO );
91334d
                 uno::Reference<rendering::XColorSpace> xColorSpace(
91334d
@@ -510,7 +511,7 @@ namespace cppcanvas
91334d
                         vcl::unotools::colorToDoubleSequence( rShadowColor,
91334d
                                                                 xColorSpace );
91334d
 
91334d
-                    rRenderer( aShadowState );
91334d
+                    rRenderer( aShadowState, rTextFillColor );
91334d
                 }
91334d
 
91334d
                 // draw relief text, if enabled
91334d
@@ -528,11 +529,11 @@ namespace cppcanvas
91334d
                         vcl::unotools::colorToDoubleSequence( rReliefColor,
91334d
                                                                 xColorSpace );
91334d
 
91334d
-                    rRenderer( aReliefState );
91334d
+                    rRenderer( aReliefState, rTextFillColor );
91334d
                 }
91334d
 
91334d
                 // draw normal text
91334d
-                rRenderer( rRenderState );
91334d
+                rRenderer( rRenderState, rTextFillColor );
91334d
 
91334d
                 return true;
91334d
             }
91334d
@@ -803,7 +804,10 @@ namespace cppcanvas
91334d
 
91334d
             private:
91334d
                 /// Interface TextRenderer
91334d
-                virtual bool operator()( const rendering::RenderState& rRenderState ) const override;
91334d
+                virtual bool operator()( const rendering::RenderState& rRenderState, const ::Color& rTextFillColor ) const override;
91334d
+
91334d
+                geometry::RealRectangle2D queryTextBounds() const;
91334d
+                css::uno::Reference<css::rendering::XPolyPolygon2D> queryTextBounds(const uno::Reference<rendering::XCanvas>& rCanvas) const;
91334d
 
91334d
                 // TODO(P2): This is potentially a real mass object
91334d
                 // (every character might be a separate TextAction),
91334d
@@ -824,6 +828,7 @@ namespace cppcanvas
91334d
                 const ::Color                               maReliefColor;
91334d
                 const ::basegfx::B2DSize                    maShadowOffset;
91334d
                 const ::Color                               maShadowColor;
91334d
+                const ::Color                               maTextFillColor;
91334d
                 const sal_Int8                              maTextDirection;
91334d
             };
91334d
 
91334d
@@ -906,7 +911,7 @@ namespace cppcanvas
91334d
                                   "::cppcanvas::internal::EffectTextAction(): Invalid font or lines" );
91334d
             }
91334d
 
91334d
-            bool EffectTextAction::operator()( const rendering::RenderState& rRenderState ) const
91334d
+            bool EffectTextAction::operator()( const rendering::RenderState& rRenderState, const ::Color& rTextFillColor ) const
91334d
             {
91334d
                 const rendering::ViewState& rViewState( mpCanvas->getViewState() );
91334d
                 const uno::Reference< rendering::XCanvas >& rCanvas( mpCanvas->getUNOCanvas() );
91334d
@@ -915,6 +920,18 @@ namespace cppcanvas
91334d
                                           rViewState,
91334d
                                           rRenderState );
91334d
 
91334d
+                //rhbz#1589029 non-transparent text fill background support
91334d
+                ::Color aEmptyColor( COL_AUTO );
91334d
+                if (rTextFillColor != aEmptyColor)
91334d
+                {
91334d
+                    rendering::RenderState aLocalState( rRenderState );
91334d
+                    aLocalState.DeviceColor = vcl::unotools::colorToDoubleSequence(
91334d
+                        rTextFillColor, rCanvas->getDevice()->getDeviceColorSpace());
91334d
+                    auto xTextBounds = queryTextBounds(rCanvas);
91334d
+                    // background of text
91334d
+                    rCanvas->fillPolyPolygon(xTextBounds, rViewState, aLocalState);
91334d
+                }
91334d
+
91334d
                 rCanvas->drawText( maStringContext, mxFont,
91334d
                                    rViewState,
91334d
                                    rRenderState,
91334d
@@ -938,7 +955,8 @@ namespace cppcanvas
91334d
                                          maShadowColor,
91334d
                                          maShadowOffset,
91334d
                                          maReliefColor,
91334d
-                                         maReliefOffset );
91334d
+                                         maReliefOffset,
91334d
+                                         maTextFillColor);
91334d
             }
91334d
 
91334d
             bool EffectTextAction::renderSubset( const ::basegfx::B2DHomMatrix&   rTransformation,
91334d
@@ -953,7 +971,7 @@ namespace cppcanvas
91334d
                 return render( rTransformation );
91334d
             }
91334d
 
91334d
-            ::basegfx::B2DRange EffectTextAction::getBounds( const ::basegfx::B2DHomMatrix& rTransformation ) const
91334d
+            geometry::RealRectangle2D EffectTextAction::queryTextBounds() const
91334d
             {
91334d
                 // create XTextLayout, to have the
91334d
                 // XTextLayout::queryTextBounds() method available
91334d
@@ -963,11 +981,24 @@ namespace cppcanvas
91334d
                         maTextDirection,
91334d
                         0 ) );
91334d
 
91334d
+                return xTextLayout->queryTextBounds();
91334d
+            }
91334d
+
91334d
+            css::uno::Reference<css::rendering::XPolyPolygon2D> EffectTextAction::queryTextBounds(const uno::Reference<rendering::XCanvas>& rCanvas) const
91334d
+            {
91334d
+                auto aTextBounds = queryTextBounds();
91334d
+                auto aB2DBounds = ::basegfx::unotools::b2DRectangleFromRealRectangle2D(aTextBounds);
91334d
+                auto aTextBoundsPoly = ::basegfx::tools::createPolygonFromRect(aB2DBounds);
91334d
+                return ::basegfx::unotools::xPolyPolygonFromB2DPolygon(rCanvas->getDevice(), aTextBoundsPoly);
91334d
+            }
91334d
+
91334d
+            ::basegfx::B2DRange EffectTextAction::getBounds( const ::basegfx::B2DHomMatrix& rTransformation ) const
91334d
+            {
91334d
                 rendering::RenderState aLocalState( maState );
91334d
                 ::canvas::tools::prependToRenderState(aLocalState, rTransformation);
91334d
 
91334d
                 return calcEffectTextBounds( ::basegfx::unotools::b2DRectangleFromRealRectangle2D(
91334d
-                                                 xTextLayout->queryTextBounds() ),
91334d
+                                                 queryTextBounds() ),
91334d
                                              ::basegfx::B2DRange( 0,0,
91334d
                                                                   maLinesOverallSize.getX(),
91334d
                                                                   maLinesOverallSize.getY() ),
91334d
@@ -1188,6 +1219,7 @@ namespace cppcanvas
91334d
                                        const ::Color&                   rReliefColor,
91334d
                                        const ::basegfx::B2DSize&        rShadowOffset,
91334d
                                        const ::Color&                   rShadowColor,
91334d
+                                       const ::Color&                   rTextFillColor,
91334d
                                        const OUString&           rText,
91334d
                                        sal_Int32                        nStartPos,
91334d
                                        sal_Int32                        nLen,
91334d
@@ -1200,6 +1232,7 @@ namespace cppcanvas
91334d
                                        const ::Color&                   rReliefColor,
91334d
                                        const ::basegfx::B2DSize&        rShadowOffset,
91334d
                                        const ::Color&                   rShadowColor,
91334d
+                                       const ::Color&                   rTextFillColor,
91334d
                                        const OUString&           rText,
91334d
                                        sal_Int32                        nStartPos,
91334d
                                        sal_Int32                        nLen,
91334d
@@ -1224,7 +1257,9 @@ namespace cppcanvas
91334d
 
91334d
             private:
91334d
                 // TextRenderer interface
91334d
-                virtual bool operator()( const rendering::RenderState& rRenderState ) const override;
91334d
+                virtual bool operator()( const rendering::RenderState& rRenderState, const ::Color& rTextFillColor ) const override;
91334d
+
91334d
+                css::uno::Reference<css::rendering::XPolyPolygon2D> queryTextBounds(const uno::Reference<rendering::XCanvas>& rCanvas) const;
91334d
 
91334d
                 // TODO(P2): This is potentially a real mass object
91334d
                 // (every character might be a separate TextAction),
91334d
@@ -1243,6 +1278,7 @@ namespace cppcanvas
91334d
                 const ::Color                                   maReliefColor;
91334d
                 const ::basegfx::B2DSize                        maShadowOffset;
91334d
                 const ::Color                                   maShadowColor;
91334d
+                const ::Color                                   maTextFillColor;
91334d
             };
91334d
 
91334d
             EffectTextArrayAction::EffectTextArrayAction( const ::basegfx::B2DPoint&        rStartPoint,
91334d
@@ -1250,6 +1286,7 @@ namespace cppcanvas
91334d
                                                           const ::Color&                    rReliefColor,
91334d
                                                           const ::basegfx::B2DSize&         rShadowOffset,
91334d
                                                           const ::Color&                    rShadowColor,
91334d
+                                                          const ::Color&                    rTextFillColor,
91334d
                                                           const OUString&            rText,
91334d
                                                           sal_Int32                         nStartPos,
91334d
                                                           sal_Int32                         nLen,
91334d
@@ -1266,7 +1303,8 @@ namespace cppcanvas
91334d
                 maReliefOffset( rReliefOffset ),
91334d
                 maReliefColor( rReliefColor ),
91334d
                 maShadowOffset( rShadowOffset ),
91334d
-                maShadowColor( rShadowColor )
91334d
+                maShadowColor( rShadowColor ),
91334d
+                maTextFillColor( rTextFillColor )
91334d
             {
91334d
                 initEffectLinePolyPolygon( maLinesOverallSize,
91334d
                                            mxTextLines,
91334d
@@ -1290,6 +1328,7 @@ namespace cppcanvas
91334d
                                                           const ::Color&                    rReliefColor,
91334d
                                                           const ::basegfx::B2DSize&         rShadowOffset,
91334d
                                                           const ::Color&                    rShadowColor,
91334d
+                                                          const ::Color&                    rTextFillColor,
91334d
                                                           const OUString&            rText,
91334d
                                                           sal_Int32                         nStartPos,
91334d
                                                           sal_Int32                         nLen,
91334d
@@ -1307,7 +1346,8 @@ namespace cppcanvas
91334d
                 maReliefOffset( rReliefOffset ),
91334d
                 maReliefColor( rReliefColor ),
91334d
                 maShadowOffset( rShadowOffset ),
91334d
-                maShadowColor( rShadowColor )
91334d
+                maShadowColor( rShadowColor ),
91334d
+                maTextFillColor( rTextFillColor )
91334d
             {
91334d
                 initEffectLinePolyPolygon( maLinesOverallSize,
91334d
                                            mxTextLines,
91334d
@@ -1327,7 +1367,15 @@ namespace cppcanvas
91334d
                                  &rTextTransform );
91334d
             }
91334d
 
91334d
-            bool EffectTextArrayAction::operator()( const rendering::RenderState& rRenderState ) const
91334d
+            css::uno::Reference<css::rendering::XPolyPolygon2D> EffectTextArrayAction::queryTextBounds(const uno::Reference<rendering::XCanvas>& rCanvas) const
91334d
+            {
91334d
+                const geometry::RealRectangle2D aTextBounds(mxTextLayout->queryTextBounds());
91334d
+                auto aB2DBounds = ::basegfx::unotools::b2DRectangleFromRealRectangle2D(aTextBounds);
91334d
+                auto aTextBoundsPoly = ::basegfx::tools::createPolygonFromRect(aB2DBounds);
91334d
+                return ::basegfx::unotools::xPolyPolygonFromB2DPolygon(rCanvas->getDevice(), aTextBoundsPoly);
91334d
+            }
91334d
+
91334d
+            bool EffectTextArrayAction::operator()( const rendering::RenderState& rRenderState, const ::Color& rTextFillColor ) const
91334d
             {
91334d
                 const rendering::ViewState& rViewState( mpCanvas->getViewState() );
91334d
                 const uno::Reference< rendering::XCanvas >& rCanvas( mpCanvas->getUNOCanvas() );
91334d
@@ -1336,6 +1384,18 @@ namespace cppcanvas
91334d
                                           rViewState,
91334d
                                           rRenderState );
91334d
 
91334d
+                //rhbz#1589029 non-transparent text fill background support
91334d
+                ::Color aEmptyColor( COL_AUTO );
91334d
+                if (rTextFillColor != aEmptyColor)
91334d
+                {
91334d
+                    rendering::RenderState aLocalState(rRenderState);
91334d
+                    aLocalState.DeviceColor = vcl::unotools::colorToDoubleSequence(
91334d
+                        rTextFillColor, rCanvas->getDevice()->getDeviceColorSpace());
91334d
+                    auto xTextBounds = queryTextBounds(rCanvas);
91334d
+                    // background of text
91334d
+                    rCanvas->fillPolyPolygon(xTextBounds, rViewState, aLocalState);
91334d
+                }
91334d
+
91334d
                 rCanvas->drawTextLayout( mxTextLayout,
91334d
                                          rViewState,
91334d
                                          rRenderState );
91334d
@@ -1358,7 +1418,8 @@ namespace cppcanvas
91334d
                                          maShadowColor,
91334d
                                          maShadowOffset,
91334d
                                          maReliefColor,
91334d
-                                         maReliefOffset );
91334d
+                                         maReliefOffset,
91334d
+                                         maTextFillColor);
91334d
             }
91334d
 
91334d
             class EffectTextArrayRenderHelper : public TextRenderer
91334d
@@ -1376,12 +1437,24 @@ namespace cppcanvas
91334d
                 }
91334d
 
91334d
                 // TextRenderer interface
91334d
-                virtual bool operator()( const rendering::RenderState& rRenderState ) const override
91334d
+                virtual bool operator()( const rendering::RenderState& rRenderState, const ::Color& rTextFillColor ) const override
91334d
                 {
91334d
                     mrCanvas->fillPolyPolygon( mrLinePolygon,
91334d
                                                mrViewState,
91334d
                                                rRenderState );
91334d
 
91334d
+                    //rhbz#1589029 non-transparent text fill background support
91334d
+                    ::Color aEmptyColor( COL_AUTO );
91334d
+                    if (rTextFillColor != aEmptyColor)
91334d
+                    {
91334d
+                        rendering::RenderState aLocalState(rRenderState);
91334d
+                        aLocalState.DeviceColor = vcl::unotools::colorToDoubleSequence(
91334d
+                            rTextFillColor, mrCanvas->getDevice()->getDeviceColorSpace());
91334d
+                        auto xTextBounds = queryTextBounds();
91334d
+                        // background of text
91334d
+                        mrCanvas->fillPolyPolygon(xTextBounds, mrViewState, aLocalState);
91334d
+                    }
91334d
+
91334d
                     mrCanvas->drawTextLayout( mrTextLayout,
91334d
                                               mrViewState,
91334d
                                               rRenderState );
91334d
@@ -1390,6 +1463,15 @@ namespace cppcanvas
91334d
                 }
91334d
 
91334d
             private:
91334d
+
91334d
+                css::uno::Reference<css::rendering::XPolyPolygon2D> queryTextBounds() const
91334d
+                {
91334d
+                    const geometry::RealRectangle2D aTextBounds(mrTextLayout->queryTextBounds());
91334d
+                    auto aB2DBounds = ::basegfx::unotools::b2DRectangleFromRealRectangle2D(aTextBounds);
91334d
+                    auto aTextBoundsPoly = ::basegfx::tools::createPolygonFromRect(aB2DBounds);
91334d
+                    return ::basegfx::unotools::xPolyPolygonFromB2DPolygon(mrCanvas->getDevice(), aTextBoundsPoly);
91334d
+                }
91334d
+
91334d
                 const uno::Reference< rendering::XCanvas >&         mrCanvas;
91334d
                 const uno::Reference< rendering::XTextLayout >&     mrTextLayout;
91334d
                 const uno::Reference< rendering::XPolyPolygon2D >&  mrLinePolygon;
91334d
@@ -1448,7 +1530,8 @@ namespace cppcanvas
91334d
                     maShadowColor,
91334d
                     maShadowOffset,
91334d
                     maReliefColor,
91334d
-                    maReliefOffset );
91334d
+                    maReliefOffset,
91334d
+                    maTextFillColor);
91334d
             }
91334d
 
91334d
             ::basegfx::B2DRange EffectTextArrayAction::getBounds( const ::basegfx::B2DHomMatrix& rTransformation ) const
91334d
@@ -1560,7 +1643,7 @@ namespace cppcanvas
91334d
 
91334d
             private:
91334d
                 // TextRenderer interface
91334d
-                virtual bool operator()( const rendering::RenderState& rRenderState ) const override;
91334d
+                virtual bool operator()( const rendering::RenderState& rRenderState, const ::Color& rTextFillColor ) const override;
91334d
 
91334d
                 // TODO(P2): This is potentially a real mass object
91334d
                 // (every character might be a separate TextAction),
91334d
@@ -1584,6 +1667,7 @@ namespace cppcanvas
91334d
                 const ::Color                                       maReliefColor;
91334d
                 const ::basegfx::B2DSize                            maShadowOffset;
91334d
                 const ::Color                                       maShadowColor;
91334d
+                const ::Color                                       maTextFillColor;
91334d
             };
91334d
 
91334d
             double calcOutlineWidth( const OutDevState& rState,
91334d
@@ -1682,7 +1766,7 @@ namespace cppcanvas
91334d
                       rTextTransform );
91334d
             }
91334d
 
91334d
-            bool OutlineAction::operator()( const rendering::RenderState& rRenderState ) const
91334d
+            bool OutlineAction::operator()( const rendering::RenderState& rRenderState, const ::Color& /*rTextFillColor*/ ) const
91334d
             {
91334d
                 const rendering::ViewState&                 rViewState( mpCanvas->getViewState() );
91334d
                 const uno::Reference< rendering::XCanvas >& rCanvas( mpCanvas->getUNOCanvas() );
91334d
@@ -1739,7 +1823,8 @@ namespace cppcanvas
91334d
                                          maShadowColor,
91334d
                                          maShadowOffset,
91334d
                                          maReliefColor,
91334d
-                                         maReliefOffset );
91334d
+                                         maReliefOffset,
91334d
+                                         maTextFillColor);
91334d
             }
91334d
 
91334d
 #if 0 // see #if'ed out use in OutlineAction::renderSubset below:
91334d
@@ -2048,6 +2133,7 @@ namespace cppcanvas
91334d
                                                              const ::Color&                 rReliefColor,
91334d
                                                              const ::Size&                  rShadowOffset,
91334d
                                                              const ::Color&                 rShadowColor,
91334d
+                                                             const ::Color&                 rTextFillColor,
91334d
                                                              const OUString&                rText,
91334d
                                                              sal_Int32                      nStartPos,
91334d
                                                              sal_Int32                      nLen,
91334d
@@ -2181,7 +2267,8 @@ namespace cppcanvas
91334d
                     !rState.textUnderlineStyle &&
91334d
                     !rState.textStrikeoutStyle &&
91334d
                     rReliefColor == aEmptyColor &&
91334d
-                    rShadowColor == aEmptyColor )
91334d
+                    rShadowColor == aEmptyColor &&
91334d
+                    rTextFillColor == aEmptyColor )
91334d
                 {
91334d
                     // nope
91334d
                     if( rParms.maTextTransformation.is_initialized() )
91334d
@@ -2214,6 +2301,7 @@ namespace cppcanvas
91334d
                                                     rReliefColor,
91334d
                                                     aShadowOffset,
91334d
                                                     rShadowColor,
91334d
+                                                    rTextFillColor,
91334d
                                                     rText,
91334d
                                                     nStartPos,
91334d
                                                     nLen,
91334d
@@ -2229,6 +2317,7 @@ namespace cppcanvas
91334d
                                                     rReliefColor,
91334d
                                                     aShadowOffset,
91334d
                                                     rShadowColor,
91334d
+                                                    rTextFillColor,
91334d
                                                     rText,
91334d
                                                     nStartPos,
91334d
                                                     nLen,
91334d
diff --git a/cppcanvas/source/mtfrenderer/textaction.hxx b/cppcanvas/source/mtfrenderer/textaction.hxx
91334d
index 2c0b240fc847..1770470f9fff 100644
91334d
--- a/cppcanvas/source/mtfrenderer/textaction.hxx
91334d
+++ b/cppcanvas/source/mtfrenderer/textaction.hxx
91334d
@@ -66,6 +66,7 @@ namespace cppcanvas
91334d
                                                      const ::Color&                 rReliefColor,
91334d
                                                      const ::Size&                  rShadowOffset,
91334d
                                                      const ::Color&                 rShadowColor,
91334d
+                                                     const ::Color&                 rTextFillColor,
91334d
                                                      const OUString&                rText,
91334d
                                                      sal_Int32                      nStartPos,
91334d
                                                      sal_Int32                      nLen,
91334d
-- 
91334d
2.17.0
91334d