From: Paul Wisbey Date: Wed, 6 May 2015 15:50:17 +0000 (+0100) Subject: Simplified the placeholder-text show/hide logic X-Git-Tag: accepted/tizen/common/20150512.125104~2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=ebc5e24273f0d9042194e533a09d989ff6f7b196 Simplified the placeholder-text show/hide logic Change-Id: I4cd9e7befafcc78fd9f9cb6acdfdc6e79544e8e5 --- diff --git a/dali-toolkit/internal/text/text-controller-impl.cpp b/dali-toolkit/internal/text/text-controller-impl.cpp index 4ce45eb..f77714c 100644 --- a/dali-toolkit/internal/text/text-controller-impl.cpp +++ b/dali-toolkit/internal/text/text-controller-impl.cpp @@ -151,8 +151,6 @@ bool Controller::Impl::ProcessInputEvents() return false; } - mEventData->mDecoratorUpdated = false; - if( mEventData->mDecorator ) { for( std::vector::iterator iter = mEventData->mEventQueue.begin(); @@ -161,16 +159,6 @@ bool Controller::Impl::ProcessInputEvents() { switch( iter->type ) { - case Event::KEYBOARD_FOCUS_GAIN_EVENT: - { - OnKeyboardFocus( true ); - break; - } - case Event::KEYBOARD_FOCUS_LOST_EVENT: - { - OnKeyboardFocus( false ); - break; - } case Event::CURSOR_KEY_EVENT: { OnCursorKeyEvent( *iter ); @@ -243,7 +231,10 @@ bool Controller::Impl::ProcessInputEvents() mEventData->mEventQueue.clear(); DALI_LOG_INFO( gLogFilter, Debug::Verbose, "<--Controller::ProcessInputEvents\n" ); - return mEventData->mDecoratorUpdated; + + bool decoratorUpdated = mEventData->mDecoratorUpdated; + mEventData->mDecoratorUpdated = false; + return decoratorUpdated; } void Controller::Impl::UpdateModel( OperationsMask operationsRequired ) @@ -406,24 +397,6 @@ void Controller::Impl::GetDefaultFonts( Vector& fonts, Length numberOfC } } -void Controller::Impl::OnKeyboardFocus( bool hasFocus ) -{ - if( NULL == mEventData ) - { - // Nothing to do if there is no text input. - return; - } - - if( !hasFocus ) - { - ChangeState( EventData::INACTIVE ); - } - else - { - ChangeState( EventData::EDITING ); - } -} - void Controller::Impl::OnCursorKeyEvent( const Event& event ) { if( NULL == mEventData ) diff --git a/dali-toolkit/internal/text/text-controller-impl.h b/dali-toolkit/internal/text/text-controller-impl.h index 7848541..79792c9 100644 --- a/dali-toolkit/internal/text/text-controller-impl.h +++ b/dali-toolkit/internal/text/text-controller-impl.h @@ -42,8 +42,6 @@ struct Event // Used to queue input events until DoRelayout() enum Type { - KEYBOARD_FOCUS_GAIN_EVENT, - KEYBOARD_FOCUS_LOST_EVENT, CURSOR_KEY_EVENT, TAP_EVENT, PAN_EVENT, @@ -296,8 +294,6 @@ struct Controller::Impl */ void GetDefaultFonts( Dali::Vector& fonts, Length numberOfCharacters ); - void OnKeyboardFocus( bool hasFocus ); - void OnCursorKeyEvent( const Event& event ); void OnTapEvent( const Event& event ); diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index af06986..5e7a45b 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -946,8 +946,13 @@ void Controller::KeyboardFocusGainEvent() if( mImpl->mEventData ) { - Event event( Event::KEYBOARD_FOCUS_GAIN_EVENT ); - mImpl->mEventData->mEventQueue.push_back( event ); + mImpl->ChangeState( EventData::EDITING ); + + if( mImpl->IsShowingPlaceholderText() ) + { + // Show alternative placeholder-text when editing + ShowPlaceholderText(); + } mImpl->RequestRelayout(); } @@ -959,8 +964,13 @@ void Controller::KeyboardFocusLostEvent() if( mImpl->mEventData ) { - Event event( Event::KEYBOARD_FOCUS_LOST_EVENT ); - mImpl->mEventData->mEventQueue.push_back( event ); + mImpl->ChangeState( EventData::INACTIVE ); + + if( mImpl->IsShowingPlaceholderText() ) + { + // Revert to regular placeholder-text when not editing + ShowPlaceholderText(); + } mImpl->RequestRelayout(); } @@ -1135,14 +1145,8 @@ void Controller::TapEvent( unsigned int tapCount, float x, float y ) { bool tapDuringEditMode( EventData::EDITING == mImpl->mEventData->mState ); - mImpl->ChangeState( EventData::EDITING ); - - if( mImpl->IsShowingPlaceholderText() ) - { - // Alternative placeholder-text is used when editing - ShowPlaceholderText(); - } - else if( EventData::EDITING == mImpl->mEventData->mState ) + if( ! mImpl->IsShowingPlaceholderText() && + EventData::EDITING == mImpl->mEventData->mState ) { // Grab handle is not shown until a tap is received whilst EDITING if( tapDuringEditMode ) @@ -1151,6 +1155,8 @@ void Controller::TapEvent( unsigned int tapCount, float x, float y ) } mImpl->mEventData->mDecorator->SetPopupActive( false ); } + + mImpl->ChangeState( EventData::EDITING ); } else if( mImpl->mEventData->mSelectionEnabled && ( 2u == tapCount ) )