diff options
Diffstat (limited to 'drawinglayer/source/primitive2d/textbreakuphelper.cxx')
-rw-r--r-- | drawinglayer/source/primitive2d/textbreakuphelper.cxx | 23 |
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 |