summaryrefslogtreecommitdiff
path: root/svx/source/svdraw/svdotextdecomposition.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/svdraw/svdotextdecomposition.cxx')
-rw-r--r--svx/source/svdraw/svdotextdecomposition.cxx11
1 files changed, 10 insertions, 1 deletions
diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx
index b894b19073..4ca4e02c90 100644
--- a/svx/source/svdraw/svdotextdecomposition.cxx
+++ b/svx/source/svdraw/svdotextdecomposition.cxx
@@ -206,6 +206,10 @@ namespace
false));
basegfx::B2DHomMatrix aNewTransform;
+ // #i100489# need extra scale factor for DXArray which collects all scalings
+ // which are needed to get the DXArray to unit coordinates
+ double fDXArrayScaleFactor(aSize.getX());
+
// add font scale to new transform
aNewTransform.scale(aSize.getX(), aSize.getY());
@@ -214,6 +218,10 @@ namespace
{
const double fFactor(rInfo.mrFont.GetPropr() / 100.0);
aNewTransform.scale(fFactor, fFactor);
+
+ // #i100489# proportional font scaling influences the DXArray,
+ // add to factor
+ fDXArrayScaleFactor *= fFactor;
}
// apply font rotate
@@ -265,7 +273,8 @@ namespace
if(!bDisableTextArray && rInfo.mpDXArray && rInfo.mnTextLen)
{
- const double fScaleFactor(basegfx::fTools::equalZero(aSize.getX()) ? 1.0 : 1.0 / aSize.getX());
+ // #i100489# use fDXArrayScaleFactor here
+ const double fScaleFactor(basegfx::fTools::equalZero(fDXArrayScaleFactor) ? 1.0 : 1.0 / fDXArrayScaleFactor);
aDXArray.reserve(rInfo.mnTextLen);
for(xub_StrLen a(0); a < rInfo.mnTextLen; a++)