drawinglayer/source/processor2d/vclprocessor2d.cxx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
New commits: commit 698ba5fcd9f01f8f6e9f300d914d8538ad527219 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sat Oct 22 21:21:05 2022 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sun Oct 23 17:04:38 2022 +0200 tdf#151674 rotate text starting point Change-Id: Ibcfb4b102a58cad53c1ce5f569721e4557844b4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141673 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx index cf1ea90aa228..24b71ebb1873 100644 --- a/drawinglayer/source/processor2d/vclprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx @@ -293,7 +293,6 @@ void VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D( // set parameters and paint text snippet const basegfx::BColor aRGBFontColor( maBColorModifierStack.getModifiedColor(rTextCandidate.getFontColor())); - const Point aStartPoint(aTextTranslate.getX(), aTextTranslate.getY()); const vcl::text::ComplexTextLayoutFlags nOldLayoutMode(mpOutputDevice->GetLayoutMode()); if (rTextCandidate.getFontAttribute().getRTL()) @@ -343,7 +342,8 @@ void VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D( getTransformFromMapMode(mpOutputDevice->GetMapMode()) * maCurrentTransformation); basegfx::B2DVector aCurrentScaling, aCurrentTranslate; - aCombinedTransform.decompose(aCurrentScaling, aCurrentTranslate, fIgnoreRotate, + double fCurrentRotate; + aCombinedTransform.decompose(aCurrentScaling, aCurrentTranslate, fCurrentRotate, fIgnoreShearX); const Point aOrigin(basegfx::fround(aCurrentTranslate.getX() / aCurrentScaling.getX()), @@ -351,6 +351,10 @@ void VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D( MapMode aMapMode(mpOutputDevice->GetMapMode().GetMapUnit(), aOrigin, Fraction(aCurrentScaling.getX()), Fraction(aCurrentScaling.getY())); + if (fCurrentRotate) + aTextTranslate *= basegfx::utils::createRotateB2DHomMatrix(fCurrentRotate); + const Point aStartPoint(aTextTranslate.getX(), aTextTranslate.getY()); + const bool bChangeMapMode(aMapMode != mpOutputDevice->GetMapMode()); if (bChangeMapMode) {