diff options
Diffstat (limited to 'drawinglayer/source/primitive2d/textbreakuphelper.cxx')
-rw-r--r-- | drawinglayer/source/primitive2d/textbreakuphelper.cxx | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drawinglayer/source/primitive2d/textbreakuphelper.cxx b/drawinglayer/source/primitive2d/textbreakuphelper.cxx index 9c4424b8d01e..8f92d9817a0e 100644 --- a/drawinglayer/source/primitive2d/textbreakuphelper.cxx +++ b/drawinglayer/source/primitive2d/textbreakuphelper.cxx @@ -58,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) @@ -68,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 @@ -137,6 +145,7 @@ namespace drawinglayer::primitive2d nIndex, nLength, std::move(aNewDXArray), + std::move(aNewKashidaArray), mrSource.getFontAttribute(), mrSource.getLocale(), mrSource.getFontColor(), @@ -168,6 +177,7 @@ namespace drawinglayer::primitive2d nIndex, nLength, std::move(aNewDXArray), + std::move(aNewKashidaArray), mrSource.getFontAttribute(), mrSource.getLocale(), mrSource.getFontColor())); @@ -261,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 |