diff -r bd83ceabce89 -r 5a1685599b76 fep/aknfep/src/AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.cpp --- a/fep/aknfep/src/AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.cpp Tue Sep 14 21:59:06 2010 +0300 +++ b/fep/aknfep/src/AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.cpp Wed Sep 15 12:34:44 2010 +0300 @@ -509,6 +509,7 @@ MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane(); MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow(); MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow(); + MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane(); CDesCArrayFlat* keystroke = editPane->KeystrokeArray(); RArray* keycodeArray = editPane->KeycodeArray(); TInt keystrokeLength = keystroke->Count(); @@ -677,6 +678,7 @@ { popup->Enable( EFalse ); } + candidatePane->SelectFirst(); iOwner->ChangeState( ECandidate ); } else @@ -1005,5 +1007,43 @@ break; } } + +void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::SubmitTextL( const TDesC& aText ) + { + MAknFepUICtrlContainerChinese* uiContainer = UIContainer(); + MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow(); + MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow(); + CDesCArrayFlat* keystroke = editPane->KeystrokeArray(); + CPtiEngine* ptiengine = iOwner->PtiEngine(); + + TInt keystrokeLength = keystroke->Count(); + if ( !(editPane->GetEffictiveLength() == keystroke->Count() + && ptiengine->PhoneticSpellingCount() > popup->CurrentSelection()) + && (!( keystrokeLength > 0 && keystroke->MdcaPoint( 0 )[0] == KSai ))) + { + editPane->SetChangeState( ETrue ); + ClearDeliberateSelection(); + editPane->SetNeedClearDeliberateSelection( ETrue ); + iOwner->ChangeState( EZhuyinSpelling ); + return; + } + if ( aText.Length( ) ) + { + MAknFepManagerUIInterface* fepMan = iOwner->FepMan( ); + fepMan->NewTextL( aText ); + fepMan->CommitInlineEditL( ); + iOwner->PtiEngine()->SetPredictiveChineseChar( aText ); + if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) ) + { + fepMan->ClearFlag( CAknFepManager::EFlagEditorFull ); + iOwner->FepMan()->TryCloseUiL( ); + } + else + { + iOwner->ChangeState( EPredictiveCandidate ); + } + } + } + // End of file