Resolves: tdf#137071 draw canvas under/over lines after background

Change-Id: I066529af010ca4e34b370e462b3e9de1173e6096
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103531
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/cppcanvas/source/mtfrenderer/textaction.cxx b/cppcanvas/source/mtfrenderer/textaction.cxx
index 277dc4e..42621e8 100644
--- a/cppcanvas/source/mtfrenderer/textaction.cxx
+++ b/cppcanvas/source/mtfrenderer/textaction.cxx
@@ -904,10 +904,6 @@ namespace cppcanvas::internal
                const rendering::ViewState& rViewState( mpCanvas->getViewState() );
                const uno::Reference< rendering::XCanvas >& rCanvas( mpCanvas->getUNOCanvas() );

                rCanvas->fillPolyPolygon( mxTextLines,
                                          rViewState,
                                          rRenderState );

                //rhbz#1589029 non-transparent text fill background support
                if (rTextFillColor != COL_AUTO)
                {
@@ -919,6 +915,11 @@ namespace cppcanvas::internal
                    rCanvas->fillPolyPolygon(xTextBounds, rViewState, aLocalState);
                }

                // under/over lines
                rCanvas->fillPolyPolygon( mxTextLines,
                                          rViewState,
                                          rRenderState );

                rCanvas->drawText( maStringContext, mxFont,
                                   rViewState,
                                   rRenderState,
@@ -1367,8 +1368,6 @@ namespace cppcanvas::internal
                const rendering::ViewState& rViewState( mpCanvas->getViewState() );
                const uno::Reference< rendering::XCanvas >& rCanvas( mpCanvas->getUNOCanvas() );

                maTextLinesHelper.render(rRenderState, bNormalText);

                //rhbz#1589029 non-transparent text fill background support
                if (rTextFillColor != COL_AUTO)
                {
@@ -1380,6 +1379,9 @@ namespace cppcanvas::internal
                    rCanvas->fillPolyPolygon(xTextBounds, rViewState, aLocalState);
                }

                // under/over lines
                maTextLinesHelper.render(rRenderState, bNormalText);

                rCanvas->drawTextLayout( mxTextLayout,
                                         rViewState,
                                         rRenderState );