X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=f10d93ec482d4348f12112230c6cca5b45dba64d;hb=85fb989437f48082146d91e0f092f6b97d1a9df5;hp=58def076a476730172e334ff009cdcf0ce8dcdfe;hpb=00c549366e07db37a58ae6940abbae462d1061ea;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 58def076..f10d93e 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -1467,6 +1467,18 @@ const ModelInterface* const Controller::GetTextModel() const return mImpl->mModel.Get(); } +float Controller::GetScrollAmountByUserInput() +{ + float scrollAmount = 0.0f; + + if (NULL != mImpl->mEventData && mImpl->mEventData->mCheckScrollAmount) + { + scrollAmount = mImpl->mModel->mScrollPosition.y - mImpl->mModel->mScrollPositionLast.y; + mImpl->mEventData->mCheckScrollAmount = false; + } + return scrollAmount; +} + // public : Relayout. Controller::UpdateTextType Controller::Relayout( const Size& size ) @@ -1538,6 +1550,7 @@ Controller::UpdateTextType Controller::Relayout( const Size& size ) // Do not re-do any operation until something changes. mImpl->mOperationsPending = NO_OPERATION; + mImpl->mModel->mScrollPositionLast = mImpl->mModel->mScrollPosition; // Whether the text control is editable const bool isEditable = NULL != mImpl->mEventData; @@ -1686,6 +1699,8 @@ bool Controller::KeyEvent( const Dali::KeyEvent& keyEvent ) ( Dali::DALI_KEY_CURSOR_UP == keyCode ) || ( Dali::DALI_KEY_CURSOR_DOWN == keyCode ) ) { + mImpl->mEventData->mCheckScrollAmount = true; + Event event( Event::CURSOR_KEY_EVENT ); event.p1.mInt = keyCode; mImpl->mEventData->mEventQueue.push_back( event ); @@ -2792,6 +2807,8 @@ void Controller::TextInsertedEvent() return; } + mImpl->mEventData->mCheckScrollAmount = true; + // The natural size needs to be re-calculated. mImpl->mRecalculateNaturalSize = true; @@ -2808,6 +2825,8 @@ void Controller::TextDeletedEvent() return; } + mImpl->mEventData->mCheckScrollAmount = true; + // The natural size needs to be re-calculated. mImpl->mRecalculateNaturalSize = true; @@ -2834,6 +2853,7 @@ void Controller::SelectEvent( float x, float y, bool selectAll ) mImpl->mEventData->mEventQueue.push_back( event ); } + mImpl->mEventData->mCheckScrollAmount = true; mImpl->RequestRelayout(); } }