Fix Text::GetCursorPosition crash issue 63/317663/1
authorBowon Ryu <bowon.ryu@samsung.com>
Mon, 6 Jan 2025 10:03:59 +0000 (19:03 +0900)
committerBowon Ryu <bowon.ryu@samsung.com>
Mon, 6 Jan 2025 10:03:59 +0000 (19:03 +0900)
When calling OnSelectAllEvent, OnSelectRangeEvent when placeholder is activated,
the right position of selection refers to the length of the placeholder text.
This causes an incorrect cursor position to be set and causes a crash.

Change-Id: I98efb9b2834c6ea5034398dc1790be6d6d6c26e4
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
dali-toolkit/internal/text/controller/text-controller-impl-event-handler.cpp

index e888f7469ad9cdd5c44bf5cf7425b4651d8aa234..a3720d96aa666a862219207c2d7874c4b19d29f6 100644 (file)
@@ -709,7 +709,7 @@ void ControllerImplEventHandler::OnSelectAllEvent(Controller::Impl& impl)
   if(impl.mEventData)
   {
     EventData& eventData = *impl.mEventData;
-    if(eventData.mSelectionEnabled && eventData.mState != EventData::INACTIVE)
+    if(eventData.mSelectionEnabled && eventData.mState != EventData::INACTIVE && !eventData.mIsShowingPlaceholderText)
     {
       ModelPtr&      model          = impl.mModel;
       const Vector2& scrollPosition = model->mScrollPosition;
@@ -762,7 +762,7 @@ void ControllerImplEventHandler::OnSelectNoneEvent(Controller::Impl& impl)
 
 void ControllerImplEventHandler::OnSelectRangeEvent(Controller::Impl& impl, const Event& event)
 {
-  if(impl.mEventData && impl.mEventData->mSelectionEnabled && impl.mEventData->mState != EventData::INACTIVE)
+  if(impl.mEventData && impl.mEventData->mSelectionEnabled && impl.mEventData->mState != EventData::INACTIVE && !impl.mEventData->mIsShowingPlaceholderText)
   {
     ModelPtr&      model          = impl.mModel;
     const Vector2& scrollPosition = model->mScrollPosition;