summaryrefslogtreecommitdiff
path: root/drawinglayer/source/primitive2d/textbreakuphelper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'drawinglayer/source/primitive2d/textbreakuphelper.cxx')
-rw-r--r--drawinglayer/source/primitive2d/textbreakuphelper.cxx23
1 files changed, 15 insertions, 8 deletions
diff --git a/drawinglayer/source/primitive2d/textbreakuphelper.cxx b/drawinglayer/source/primitive2d/textbreakuphelper.cxx
index df37aa01356e..8f92d9817a0e 100644
--- a/drawinglayer/source/primitive2d/textbreakuphelper.cxx
+++ b/drawinglayer/source/primitive2d/textbreakuphelper.cxx
@@ -30,9 +30,6 @@ namespace drawinglayer::primitive2d
{
TextBreakupHelper::TextBreakupHelper(const TextSimplePortionPrimitive2D& rSource)
: mrSource(rSource),
- mxResult(),
- maTextLayouter(),
- maDecTrans(),
mbNoDXArray(false)
{
maDecTrans = mrSource.getTextTransform();
@@ -61,6 +58,7 @@ namespace drawinglayer::primitive2d
// prepare values for new portion
basegfx::B2DHomMatrix aNewTransform;
std::vector< double > aNewDXArray;
+ std::vector< sal_Bool > aNewKashidaArray;
const bool bNewStartIsNotOldStart(nIndex > mrSource.getTextPosition());
if(!mbNoDXArray)
@@ -71,6 +69,13 @@ namespace drawinglayer::primitive2d
mrSource.getDXArray().begin() + ((nIndex + nLength) - mrSource.getTextPosition()));
}
+ if(!mbNoDXArray && !mrSource.getKashidaArray().empty())
+ {
+ aNewKashidaArray = std::vector< sal_Bool >(
+ mrSource.getKashidaArray().begin() + (nIndex - mrSource.getTextPosition()),
+ mrSource.getKashidaArray().begin() + ((nIndex + nLength) - mrSource.getTextPosition()));
+ }
+
if(bNewStartIsNotOldStart)
{
// needs to be moved to a new start position
@@ -139,7 +144,8 @@ namespace drawinglayer::primitive2d
mrSource.getText(),
nIndex,
nLength,
- aNewDXArray,
+ std::move(aNewDXArray),
+ std::move(aNewKashidaArray),
mrSource.getFontAttribute(),
mrSource.getLocale(),
mrSource.getFontColor(),
@@ -170,7 +176,8 @@ namespace drawinglayer::primitive2d
mrSource.getText(),
nIndex,
nLength,
- aNewDXArray,
+ std::move(aNewDXArray),
+ std::move(aNewKashidaArray),
mrSource.getFontAttribute(),
mrSource.getLocale(),
mrSource.getFontColor()));
@@ -264,14 +271,14 @@ namespace drawinglayer::primitive2d
mxResult = aTempResult;
}
- const Primitive2DContainer& TextBreakupHelper::getResult(BreakupUnit aBreakupUnit) const
+ Primitive2DContainer TextBreakupHelper::extractResult(BreakupUnit aBreakupUnit)
{
if(mxResult.empty())
{
- const_cast< TextBreakupHelper* >(this)->breakup(aBreakupUnit);
+ breakup(aBreakupUnit);
}
- return mxResult;
+ return std::move(mxResult);
}
} // end of namespace