Change-Id: Id1db8cd3155a36e3d60b848c2c37afe6935bbc16
Signed-off-by: Agnelo Vaz <agnelo.vaz@samsung.com>
notifier.ContentSelectedSignal().Connect( this, &TextField::OnClipboardTextSelected );
}
notifier.ContentSelectedSignal().Connect( this, &TextField::OnClipboardTextSelected );
}
- mController->KeyboardFocusGainEvent();
+ mController->KeyboardFocusGainEvent(); // Called in the case of no virtual keyboard to trigger this event
EmitKeyInputFocusSignal( true ); // Calls back into the Control hence done last.
}
EmitKeyInputFocusSignal( true ); // Calls back into the Control hence done last.
}
- mController->KeyboardFocusGainEvent();
+ mController->KeyboardFocusGainEvent(); // Initially called by OnKeyInputFocusGained
mEventData->mDecoratorUpdated = true;
HideClipboard();
}
mEventData->mDecoratorUpdated = true;
HideClipboard();
}
+ else if ( EventData::INTERRUPTED == mEventData->mState)
+ {
+ mEventData->mDecorator->SetHandleActive( GRAB_HANDLE, false );
+ mEventData->mDecorator->SetHandleActive( LEFT_SELECTION_HANDLE, false );
+ mEventData->mDecorator->SetHandleActive( RIGHT_SELECTION_HANDLE, false );
+ mEventData->mDecorator->SetPopupActive( false );
+ mEventData->mDecoratorUpdated = true;
+ HideClipboard();
+ }
else if ( EventData::SELECTING == mEventData->mState )
{
mEventData->mDecorator->SetActiveCursor( ACTIVE_CURSOR_NONE );
else if ( EventData::SELECTING == mEventData->mState )
{
mEventData->mDecorator->SetActiveCursor( ACTIVE_CURSOR_NONE );
SELECTING,
SELECTION_CHANGED,
EDITING,
SELECTING,
SELECTION_CHANGED,
EDITING,
if( mImpl->mEventData )
{
if( mImpl->mEventData )
{
- mImpl->ChangeState( EventData::INACTIVE );
-
- if( mImpl->IsShowingPlaceholderText() )
+ if ( EventData::INTERRUPTED != mImpl->mEventData->mState )
- // Revert to regular placeholder-text when not editing
- ShowPlaceholderText();
- }
+ mImpl->ChangeState( EventData::INACTIVE );
- mImpl->RequestRelayout();
+ if( mImpl->IsShowingPlaceholderText() )
+ {
+ // Revert to regular placeholder-text when not editing
+ ShowPlaceholderText();
+ }
+ }
+ mImpl->RequestRelayout();
}
bool Controller::KeyEvent( const Dali::KeyEvent& keyEvent )
}
bool Controller::KeyEvent( const Dali::KeyEvent& keyEvent )
{
textChanged = BackspaceKeyEvent();
}
{
textChanged = BackspaceKeyEvent();
}
- else if ( IsKey( keyEvent, Dali::DALI_KEY_POWER ) || IsKey( keyEvent, Dali::DALI_KEY_MENU ) )
+ else if ( IsKey( keyEvent, Dali::DALI_KEY_POWER ) )
+ {
+ mImpl->ChangeState( EventData::INTERRUPTED ); // State is not INACTIVE as expect to return to edit mode.
+ // Avoids calling the InsertText() method which can delete selected text
+ }
+ else if ( 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.
+ mImpl->ChangeState( EventData::INACTIVE );
+ // Menu key behaviour does not allow edit to resume like Power key
+ // Avoids calling the InsertText() method which can delete selected text
- mImpl->ChangeState( EventData::EDITING ); // todo Confirm this is the best place to change the state of
+ if ( mImpl->mEventData->mState != EventData::INTERRUPTED && mImpl->mEventData->mState != EventData::INACTIVE )
+ {
+ mImpl->ChangeState( EventData::EDITING );
+ }
mImpl->RequestRelayout();
}
mImpl->RequestRelayout();
}