X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller-text-updater.cpp;h=4d0ba8f015821bb1e73043500ad024a085de1b7a;hp=f49e9539996e99ceacd9053cf54d5ff560edf71d;hb=21b574541aac2281c92020c0f62f7754897808b2;hpb=5d397f414305c86782668ecd154d8967ee8396b0 diff --git a/dali-toolkit/internal/text/text-controller-text-updater.cpp b/dali-toolkit/internal/text/text-controller-text-updater.cpp index f49e953..4d0ba8f 100644 --- a/dali-toolkit/internal/text/text-controller-text-updater.cpp +++ b/dali-toolkit/internal/text/text-controller-text-updater.cpp @@ -94,7 +94,8 @@ void Controller::TextUpdater::SetText(Controller& controller, const std::string& logicalModel->mUnderlinedCharacterRuns, logicalModel->mBackgroundColorRuns, logicalModel->mStrikethroughCharacterRuns, - logicalModel->mBoundedParagraphRuns); + logicalModel->mBoundedParagraphRuns, + logicalModel->mCharacterSpacingCharacterRuns); Length textSize = 0u; const uint8_t* utf8 = NULL; @@ -472,6 +473,7 @@ bool Controller::TextUpdater::RemoveText( UpdateInputStyleType type) { bool removed = false; + bool removeAll = false; Controller::Impl& impl = *controller.mImpl; EventData*& eventData = impl.mEventData; @@ -525,9 +527,14 @@ bool Controller::TextUpdater::RemoveText( numberOfCharacters = currentText.Count() - cursorIndex; } + if((cursorIndex == 0) && (currentText.Count() - numberOfCharacters == 0)) + { + removeAll = true; + } + TextUpdateInfo& textUpdateInfo = impl.mTextUpdateInfo; - if(eventData->mPreEditFlag || // If the preedit flag is enabled, it means two (or more) of them came together i.e. when two keys have been pressed at the same time. + if(eventData->mPreEditFlag || removeAll || // If the preedit flag is enabled, it means two (or more) of them came together i.e. when two keys have been pressed at the same time. ((cursorIndex + numberOfCharacters) <= textUpdateInfo.mPreviousNumberOfCharacters)) { // Mark the paragraphs to be updated. @@ -573,7 +580,7 @@ bool Controller::TextUpdater::RemoveText( // If the number of current text and the number of characters to be deleted are same, // it means all texts should be removed and all Preedit variables should be initialized. - if((currentText.Count() - numberOfCharacters == 0) && (cursorIndex == 0)) + if(removeAll) { impl.ClearPreEditFlag(); textUpdateInfo.mNumberOfCharactersToAdd = 0; @@ -616,6 +623,7 @@ bool Controller::TextUpdater::RemoveText( } DALI_LOG_INFO(gLogFilter, Debug::General, "Controller::RemoveText %p removed %d\n", &controller, numberOfCharacters); + removeAll = false; removed = true; } }