X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller-event-handler.cpp;h=79a917ec53ec62a1b9b02d84891959811744edee;hb=75fe6c4a2f784bd52ccf8eb16049317825338a6e;hp=15805c8d7763db8a20884b65cde4e27a10392b7d;hpb=0a6073b11b32d2153deb0e4a581a9314eef8ab10;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/text-controller-event-handler.cpp b/dali-toolkit/internal/text/text-controller-event-handler.cpp index 15805c8..79a917e 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()) @@ -529,6 +536,27 @@ void Controller::EventHandler::SelectEvent(Controller& controller, float x, floa } } +void Controller::EventHandler::SelectEvent(Controller& controller, const uint32_t start, const uint32_t end, SelectionType selectType) +{ + DALI_LOG_INFO(gLogFilter, Debug::Verbose, "Controller::SelectEvent\n"); + + if(NULL != controller.mImpl->mEventData) + { + if(selectType == SelectionType::RANGE) + { + Event event(Event::SELECT_RANGE); + event.p2.mUint = start; + event.p3.mUint = end; + controller.mImpl->mEventData->mEventQueue.push_back(event); + } + + controller.mImpl->mEventData->mCheckScrollAmount = true; + controller.mImpl->mEventData->mIsLeftHandleSelected = true; + controller.mImpl->mEventData->mIsRightHandleSelected = true; + controller.mImpl->RequestRelayout(); + } +} + void Controller::EventHandler::ProcessModifyEvents(Controller& controller) { Vector& events = controller.mImpl->mModifyEvents;