From: Bowon Ryu Date: Mon, 9 Aug 2021 04:38:31 +0000 (+0000) Subject: Merge "fix wrong behaviour of SelectWholeText()" into devel/master X-Git-Tag: dali_2.0.39~3 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=354bfd1d92d0c693ce1ee16748eca59e2fe4bf27;hp=7d2f20cb084ebba297e77b7b3847fb8cf19c0af5 Merge "fix wrong behaviour of SelectWholeText()" into devel/master --- diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp index bb3ed33..c89a025 100755 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp @@ -475,6 +475,9 @@ int UtcDaliTextControllerTextPopupButtonTouched(void) // Sets some text. controller->SetText( "Hello world" ); + // When the TextSelectionPopup is active, the controller has focus. + controller->KeyboardFocusGainEvent(); + // Select the whole text. button = PushButton::DownCast( textPopup.FindChildByName( OPTION_SELECT_ALL ) ); DALI_TEST_CHECK( button ); diff --git a/dali-toolkit/internal/text/text-controller-event-handler.cpp b/dali-toolkit/internal/text/text-controller-event-handler.cpp index 15805c8..a84747b 100644 --- a/dali-toolkit/internal/text/text-controller-event-handler.cpp +++ b/dali-toolkit/internal/text/text-controller-event-handler.cpp @@ -81,6 +81,13 @@ void Controller::EventHandler::KeyboardFocusLostEvent(Controller& controller) { if(EventData::INTERRUPTED != controller.mImpl->mEventData->mState) { + // Init selection position + if(controller.mImpl->mEventData->mState == EventData::SELECTING) + { + controller.mImpl->mEventData->mLeftSelectionPosition = controller.mImpl->mEventData->mPrimaryCursorPosition; + controller.mImpl->mEventData->mRightSelectionPosition = controller.mImpl->mEventData->mPrimaryCursorPosition; + } + controller.mImpl->ChangeState(EventData::INACTIVE); if(!controller.mImpl->IsShowingRealText()) diff --git a/dali-toolkit/internal/text/text-controller-impl-event-handler.cpp b/dali-toolkit/internal/text/text-controller-impl-event-handler.cpp index 995a800..c9a197f 100644 --- a/dali-toolkit/internal/text/text-controller-impl-event-handler.cpp +++ b/dali-toolkit/internal/text/text-controller-impl-event-handler.cpp @@ -658,7 +658,7 @@ void ControllerImplEventHandler::OnSelectAllEvent(Controller::Impl& impl) if(impl.mEventData) { EventData& eventData = *impl.mEventData; - if(eventData.mSelectionEnabled) + if(eventData.mSelectionEnabled && eventData.mState != EventData::INACTIVE) { ModelPtr& model = impl.mModel; const Vector2& scrollPosition = model->mScrollPosition;