Fix the cursor position when retrieving the selected text. 22/48922/2
authorVictor Cebollada <v.cebollada@samsung.com>
Thu, 1 Oct 2015 13:59:31 +0000 (14:59 +0100)
committerVictor Cebollada <v.cebollada@samsung.com>
Thu, 1 Oct 2015 15:16:53 +0000 (16:16 +0100)
* The cursor shouldn't be updated when the selected text is retrieved unless
  is deleted after retrieval.

Change-Id: Ib6e53ce41199fd3b62c59effedcd42d2b70d6158
Signed-off-by: Victor Cebollada <v.cebollada@samsung.com>
dali-toolkit/internal/text/text-controller-impl.cpp

index bd66860..795a929 100644 (file)
@@ -899,10 +899,12 @@ void Controller::Impl::RetrieveSelection( std::string& selectedText, bool delete
       Vector<Character>::Iterator first = currentText.Begin() + startOfSelectedText;
       Vector<Character>::Iterator last  = first + lengthOfSelectedText;
       currentText.Erase( first, last );
       Vector<Character>::Iterator first = currentText.Begin() + startOfSelectedText;
       Vector<Character>::Iterator last  = first + lengthOfSelectedText;
       currentText.Erase( first, last );
+
+      // Scroll after delete.
+      mEventData->mPrimaryCursorPosition = handlesCrossed ? mEventData->mRightSelectionPosition : mEventData->mLeftSelectionPosition;
+      mEventData->mScrollAfterDelete = true;
+      mEventData->mDecoratorUpdated = true;
     }
     }
-    mEventData->mPrimaryCursorPosition = handlesCrossed ? mEventData->mRightSelectionPosition : mEventData->mLeftSelectionPosition;
-    mEventData->mScrollAfterDelete = true;
-    mEventData->mDecoratorUpdated = true;
   }
 }
 
   }
 }