X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=fc372af0467c55d1ef78fce49b0f6067a879126d;hb=394b478479627e640973168935bc0045c584b752;hp=32e3ed3de8fb4549752412cce50c16b107f6be72;hpb=d9c164e4530e354cd14dc4a1a658070ba55e99b8;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 32e3ed3..fc372af 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -23,6 +23,7 @@ #include #include #include +#include // INTERNAL INCLUDES #include @@ -1151,6 +1152,11 @@ bool Controller::KeyEvent( const Dali::KeyEvent& keyEvent ) { textChanged = BackspaceKeyEvent(); } + else if ( IsKey( keyEvent, Dali::DALI_KEY_POWER ) || IsKey( keyEvent, Dali::DALI_KEY_MENU ) ) + { + // Do nothing when the Power or Menu Key is pressed. + // It avoids call the InsertText() method and delete the selected text. + } else { DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::KeyEvent %p keyString %s\n", this, keyString.c_str() ); @@ -1345,11 +1351,11 @@ void Controller::TapEvent( unsigned int tapCount, float x, float y ) mImpl->mEventData->mDecorator->SetPopupActive( false ); } - mImpl->ChangeState( EventData::EDITING ); - // Handles & cursors must be repositioned after Relayout() i.e. after the Model has been updated if( mImpl->mEventData ) { + mImpl->ChangeState( EventData::EDITING ); + Event event( Event::TAP_EVENT ); event.p1.mUint = tapCount; event.p2.mFloat = x; @@ -1475,6 +1481,20 @@ void Controller::DecorationEvent( HandleType handleType, HandleState state, floa } } +void Controller::PasteText( const std::string& stringToPaste ) +{ + InsertText( stringToPaste, Text::Controller::COMMIT ); + mImpl->ChangeState( EventData::EDITING ); + mImpl->RequestRelayout(); +} + +void Controller::PasteClipboardItemEvent() +{ + ClipboardEventNotifier notifier( ClipboardEventNotifier::Get() ); + std::string stringToPaste( notifier.GetContent() ); + PasteText( stringToPaste ); +} + void Controller::TextPopupButtonTouched( Dali::Toolkit::TextSelectionPopup::Buttons button ) { if( NULL == mImpl->mEventData ) @@ -1512,9 +1532,7 @@ void Controller::TextPopupButtonTouched( Dali::Toolkit::TextSelectionPopup::Butt { std::string stringToPaste(""); mImpl->GetTextFromClipboard( 0, stringToPaste ); // Paste latest item from system clipboard - InsertText( stringToPaste, Text::Controller::COMMIT ); - mImpl->ChangeState( EventData::EDITING ); - mImpl->RequestRelayout(); + PasteText( stringToPaste ); break; } case Toolkit::TextSelectionPopup::SELECT: @@ -1536,6 +1554,7 @@ void Controller::TextPopupButtonTouched( Dali::Toolkit::TextSelectionPopup::Butt } case Toolkit::TextSelectionPopup::CLIPBOARD: { + mImpl->ShowClipboard(); break; } case Toolkit::TextSelectionPopup::NONE: @@ -1611,7 +1630,6 @@ ImfManager::ImfCallbackData Controller::OnImfEvent( ImfManager& imfManager, cons return callbackData; } - Controller::~Controller() { delete mImpl;