X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=inline;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=e990d42f722319d20eb2a5b06cbb17f53e6bc2ea;hb=f39a0555fc2897d94a4984712e219e452bc96d70;hp=89f0123ad2a3422f9a59e8b18bfa2380a4b314d7;hpb=80e64104f82d3f0e87a58c12934c50b3a009805f;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 89f0123..e990d42 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -89,7 +89,6 @@ void Controller::SetText( const std::string& text ) { // 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 ) || ( EventData::EDITING_WITH_GRAB_HANDLE == mImpl->mEventData->mState ) ) { @@ -1485,8 +1484,7 @@ bool Controller::RemoveSelectedText() { bool textRemoved( false ); - if ( EventData::SELECTING == mImpl->mEventData->mState || - EventData::SELECTION_CHANGED == mImpl->mEventData->mState ) + if( EventData::SELECTING == mImpl->mEventData->mState ) { std::string removedString; mImpl->RetrieveSelection( removedString, true ); @@ -1623,14 +1621,7 @@ void Controller::SelectEvent( float x, float y, bool selectAll ) { if( mImpl->mEventData ) { - if ( mImpl->mEventData->mState == EventData::SELECTING ) - { - mImpl->ChangeState( EventData::SELECTION_CHANGED ); - } - else - { - mImpl->ChangeState( EventData::SELECTING ); - } + mImpl->ChangeState( EventData::SELECTING ); if( selectAll ) { @@ -1718,12 +1709,21 @@ void Controller::PasteText( const std::string& stringToPaste ) InsertText( stringToPaste, Text::Controller::COMMIT ); mImpl->ChangeState( EventData::EDITING ); mImpl->RequestRelayout(); + + // Do this last since it provides callbacks into application code + mImpl->mControlInterface.TextChanged(); } void Controller::PasteClipboardItemEvent() { + // Retrieve the clipboard contents first ClipboardEventNotifier notifier( ClipboardEventNotifier::Get() ); std::string stringToPaste( notifier.GetContent() ); + + // Commit the current pre-edit text; the contents of the clipboard should be appended + mImpl->ResetImfManager(); + + // Paste PasteText( stringToPaste ); } @@ -1898,8 +1898,7 @@ bool Controller::BackspaceKeyEvent() bool removed( false ); - if ( EventData::SELECTING == mImpl->mEventData->mState || - EventData::SELECTION_CHANGED == mImpl->mEventData->mState ) + if( EventData::SELECTING == mImpl->mEventData->mState ) { removed = RemoveSelectedText(); }