From: Paul Wisbey Date: Fri, 4 Sep 2015 16:19:29 +0000 (+0100) Subject: The 1st long-press on inactive text-field is treated as tap X-Git-Tag: dali_1.1.2~3 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=f04a5829e7e2a5f434264d258f16b1417941de6e;ds=sidebyside The 1st long-press on inactive text-field is treated as tap Change-Id: I104d428041fb4471bee8f67ed07cf09997c7c04d --- diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index f24e69a..6bcb90c 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -1574,21 +1574,38 @@ void Controller::PanEvent( Gesture::State state, const Vector2& displacement ) void Controller::LongPressEvent( Gesture::State state, float x, float y ) { - DALI_ASSERT_DEBUG( mImpl->mEventData && "Unexpected PanEvent" ); + DALI_ASSERT_DEBUG( mImpl->mEventData && "Unexpected LongPressEvent" ); - if ( mImpl->IsShowingPlaceholderText() || mImpl->mLogicalModel->mText.Count() == 0u ) + if( state == Gesture::Started && + mImpl->mEventData ) { - if ( mImpl->mEventData ) + if( ! mImpl->IsShowingRealText() ) { Event event( Event::LONG_PRESS_EVENT ); event.p1.mInt = state; mImpl->mEventData->mEventQueue.push_back( event ); mImpl->RequestRelayout(); } - } - else if( mImpl->mEventData ) - { - SelectEvent( x, y, false ); + else + { + // The 1st long-press on inactive text-field is treated as tap + if( EventData::INACTIVE == mImpl->mEventData->mState ) + { + mImpl->ChangeState( EventData::EDITING ); + + Event event( Event::TAP_EVENT ); + event.p1.mUint = 1; + event.p2.mFloat = x; + event.p3.mFloat = y; + mImpl->mEventData->mEventQueue.push_back( event ); + + mImpl->RequestRelayout(); + } + else + { + SelectEvent( x, y, false ); + } + } } }