[dali_2.3.24] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / controller / text-controller-text-updater.cpp
index 30355f8..59da80a 100644 (file)
@@ -102,7 +102,9 @@ void Controller::TextUpdater::SetText(Controller& controller, const std::string&
     const uint8_t* utf8     = NULL;
     if(impl.mMarkupProcessorEnabled)
     {
-      ProcessMarkupString(text, markupProcessData);
+      MarkupPropertyData markupPropertyData(impl.mAnchorColor, impl.mAnchorClickedColor);
+
+      ProcessMarkupString(text, markupPropertyData, markupProcessData);
       textSize = markupProcessData.markupProcessedText.size();
 
       // This is a bit horrible but std::string returns a (signed) char*
@@ -206,7 +208,8 @@ void Controller::TextUpdater::InsertText(Controller& controller, const std::stri
     removedPrevious = RemoveText(controller,
                                  -static_cast<int>(eventData->mPrimaryCursorPosition - eventData->mPreEditStartPosition),
                                  eventData->mPreEditLength,
-                                 DONT_UPDATE_INPUT_STYLE);
+                                 DONT_UPDATE_INPUT_STYLE,
+                                 true);
 
     eventData->mPrimaryCursorPosition = eventData->mPreEditStartPosition;
     eventData->mPreEditLength         = 0u;
@@ -493,7 +496,8 @@ bool Controller::TextUpdater::RemoveText(
   Controller&          controller,
   int                  cursorOffset,
   int                  numberOfCharacters,
-  UpdateInputStyleType type)
+  UpdateInputStyleType type,
+  bool                 isDeletingPreEdit)
 {
   bool removed   = false;
   bool removeAll = false;
@@ -606,7 +610,10 @@ bool Controller::TextUpdater::RemoveText(
       if(removeAll)
       {
         impl.ClearPreEditFlag();
-        textUpdateInfo.mNumberOfCharactersToAdd = 0;
+        if(!isDeletingPreEdit)
+        {
+          textUpdateInfo.mNumberOfCharactersToAdd = 0;
+        }
       }
 
       // Updates the text style runs by removing characters. Runs with no characters are removed.