diff -r eb1f2e154e89 -r f5a1e66df979 fep/aknfep/src/AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase.cpp --- a/fep/aknfep/src/AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase.cpp Tue Feb 02 01:02:04 2010 +0200 +++ b/fep/aknfep/src/AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase.cpp Fri Feb 19 23:09:27 2010 +0200 @@ -220,10 +220,28 @@ CDesCArrayFlat* keyStrokeArray = UIContainer()->EditPaneWindow()->KeystrokeArray(); CDesCArrayFlat* phraseKeyStrokeArray = UIContainer()->EditPaneWindow()->PhraseShowKeyStrokeArray() ; CDesCArrayFlat* phraseArray = UIContainer()->EditPaneWindow()->PhraseArray(); + CDesCArrayFlat* phraseZhuYinSpellingArray = UIContainer()->EditPaneWindow()->PhraseZhuYinSpellingArray(); RArray* keyCodeArray = UIContainer()->EditPaneWindow()->KeycodeArray(); RArray* keyCodePhraseArray = UIContainer()->EditPaneWindow()->PhraseKeycodeArray(); phraseArray->AppendL( aPhrase ); + + //we store zhuyin-spelling for this phrase + TInt delCount = phraseZhuYinSpellingArray->Count() - phraseArray->Count();//we can sure delCount>=0,impossible <0 + if(delCount > 0) + { + phraseZhuYinSpellingArray->Delete( phraseArray->Count(),delCount );//keep same count,del from tail one by one + } + TInt pos = -1; + if(-1 == pos) + pos = aText.Find( KDelimiter );//single quote + if(-1 == pos) + pos = GetIndexOfToneMark( aText ); + if(-1 == pos) + pos = aText.Length();//impossible + phraseZhuYinSpellingArray->AppendL(aText.Left(pos+1));//we are sure the first spelling-group from left match the aPhrase + + TBuf keyStoke; TInt replaceCount = 0; TInt delimiterIndex = aText.Find( KDelimiter );