diff -r 5e18d8c489d6 -r 1bbdde98cc2d textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp --- a/textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp Tue May 25 13:03:44 2010 +0300 +++ b/textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp Wed Jun 09 10:03:19 2010 +0300 @@ -170,7 +170,6 @@ case ECmdPenInputLanguage: { TRAP_IGNORE(SetInputLanguageL(*data)); - } break; case ECmdPenInputRange: @@ -206,10 +205,10 @@ case ECmdPenInputFingerSpelling: { - if (UiMgr()) + if ( iWesternUiMgr ) { TInt handled = KErrNone; - TRAP_IGNORE(handled = UiMgr()->HandleCommandL(aCmd, aData)); + TRAP_IGNORE( handled = iWesternUiMgr->HandleCommandL( aCmd, aData )); return handled; } } @@ -385,14 +384,21 @@ void CGenericItutUiLayout::SetInputModeL(TInt aMode) { - TBool numericOnlyChanged = iDataMgr->IsCharFlagChanged() ? ETrue : EFalse; - //only number mode need judge it + // Input mode can not be set to EnativeNumber in Thai + TInt inputLanguage = iDataMgr->InputLanguage(); + if ( aMode == ENativeNumber && inputLanguage == ELangThai ) + { + aMode = ENumber; + } + + TBool numericOnlyChanged = iDataMgr->IsCharFlagChanged() ? ETrue : EFalse; + //only number mode need judge it - // both EStrokeFind and EStroke will be stored as Estroke ///// - if ( aMode != iDataMgr->InputMode() || - aMode == EStroke || aMode == EStrokeFind || - aMode == EZhuyin || aMode == EZhuyinFind || - numericOnlyChanged ) + // both EStrokeFind and EStroke will be stored as Estroke ///// + if ( aMode != iDataMgr->InputMode() || + aMode == EStroke || aMode == EStrokeFind || + aMode == EZhuyin || aMode == EZhuyinFind || + numericOnlyChanged ) { // deactivate original uimgr first if (iCurrentUiMgr