return false;
}
- mEventData->mDecoratorUpdated = false;
-
if( mEventData->mDecorator )
{
for( std::vector<Event>::iterator iter = mEventData->mEventQueue.begin();
{
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 );
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 )
}
}
-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 )
// Used to queue input events until DoRelayout()
enum Type
{
- KEYBOARD_FOCUS_GAIN_EVENT,
- KEYBOARD_FOCUS_LOST_EVENT,
CURSOR_KEY_EVENT,
TAP_EVENT,
PAN_EVENT,
*/
void GetDefaultFonts( Dali::Vector<FontRun>& fonts, Length numberOfCharacters );
- void OnKeyboardFocus( bool hasFocus );
-
void OnCursorKeyEvent( const Event& event );
void OnTapEvent( const Event& event );
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();
}
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();
}
{
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 )
}
mImpl->mEventData->mDecorator->SetPopupActive( false );
}
+
+ mImpl->ChangeState( EventData::EDITING );
}
else if( mImpl->mEventData->mSelectionEnabled &&
( 2u == tapCount ) )