From fe2eb6e250ee146123c06f8aa9fe2805c5cb35bb Mon Sep 17 00:00:00 2001 From: "v.cebollada" Date: Thu, 20 Aug 2015 14:17:06 +0900 Subject: [PATCH] Fixes cursor status when editing with popup or grab handle. Change-Id: I5e0f3066f77fca07e7a42d9bfaf9fda9d0f824aa Signed-off-by: v.cebollada --- .../internal/text/text-controller-impl.cpp | 5 +++-- dali-toolkit/internal/text/text-controller.cpp | 23 ++++++++++++++-------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/dali-toolkit/internal/text/text-controller-impl.cpp b/dali-toolkit/internal/text/text-controller-impl.cpp index 3da7138..b5c6161 100644 --- a/dali-toolkit/internal/text/text-controller-impl.cpp +++ b/dali-toolkit/internal/text/text-controller-impl.cpp @@ -1954,8 +1954,9 @@ void Controller::Impl::ScrollTextToMatchCursor() } // Set which cursors are active according the state. - if( ( EventData::EDITING == mEventData->mState ) || - ( EventData::EDITING_WITH_POPUP == mEventData->mState ) || + if( ( EventData::EDITING == mEventData->mState ) || + ( EventData::EDITING_WITH_POPUP == mEventData->mState ) || + ( EventData::EDITING_WITH_GRAB_HANDLE == mEventData->mState ) || ( EventData::GRAB_HANDLE_PANNING == mEventData->mState ) ) { if( cursorInfo.isSecondaryCursor ) diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 233e764..6f61789 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -81,9 +81,10 @@ void Controller::SetText( const std::string& text ) if( mImpl->mEventData ) { // If popup shown then hide it by switching to Editing state - if ( EventData::SELECTING == mImpl->mEventData->mState || - EventData::SELECTION_CHANGED == mImpl->mEventData->mState || - EventData::EDITING_WITH_POPUP == mImpl->mEventData->mState ) + if( ( EventData::SELECTING == mImpl->mEventData->mState ) || + ( EventData::SELECTION_CHANGED == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_POPUP == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_GRAB_HANDLE == mImpl->mEventData->mState ) ) { mImpl->ChangeState( EventData::EDITING ); } @@ -329,7 +330,7 @@ bool Controller::RemoveText( int cursorOffset, int numberOfChars ) DALI_LOG_INFO( gLogFilter, Debug::General, "Controller::RemoveText %p mText.Count() %d cursor %d cursorOffset %d numberOfChars %d\n", this, mImpl->mLogicalModel->mText.Count(), mImpl->mEventData->mPrimaryCursorPosition, cursorOffset, numberOfChars ); - if( ! mImpl->IsShowingPlaceholderText() ) + if( !mImpl->IsShowingPlaceholderText() ) { // Delete at current cursor position Vector& currentText = mImpl->mLogicalModel->mText; @@ -708,8 +709,9 @@ void Controller::ResetCursorPosition( CharacterIndex cursorIndex ) mImpl->mEventData->mPrimaryCursorPosition = cursorIndex; // Update the cursor if it's in editing mode. - if( ( EventData::EDITING == mImpl->mEventData->mState ) || - ( EventData::EDITING_WITH_POPUP == mImpl->mEventData->mState ) ) + if( ( EventData::EDITING == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_POPUP == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_GRAB_HANDLE == mImpl->mEventData->mState ) ) { mImpl->mEventData->mUpdateCursorPosition = true; } @@ -762,8 +764,13 @@ void Controller::TextInsertedEvent() REORDER ); // Queue a cursor reposition event; this must wait until after DoRelayout() - mImpl->mEventData->mUpdateCursorPosition = true; - mImpl->mEventData->mScrollAfterUpdatePosition = true; + if( ( EventData::EDITING == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_POPUP == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_GRAB_HANDLE == mImpl->mEventData->mState ) ) + { + mImpl->mEventData->mUpdateCursorPosition = true; + mImpl->mEventData->mScrollAfterUpdatePosition = true; + } } void Controller::TextDeletedEvent() -- 2.7.4