diff -r 6defe5d1bd39 -r 4eb1ae11334f textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp --- a/textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp Wed Mar 31 22:08:20 2010 +0300 +++ b/textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp Wed Apr 14 16:18:34 2010 +0300 @@ -48,6 +48,8 @@ const TUid KUidtruiApp = { 0x2000B104 }; const TUid KUidPenInputSettingApp = { 0x2001959B }; +const TInt KFepChineseInputModeLength = 10; + _LIT(KLeftBracket, "(" ); _LIT(KRightBracket, ")" ); @@ -1185,7 +1187,9 @@ case ELangHongKongChinese: case ELangTaiwanChinese: { - iAknfepRepository->Set(KAknFepChineseInputMode, aInputMode); + TBuf conversion; + conversion.Num(aInputMode, EHex); + iAknfepRepository->Set( KAknFepChineseInputMode, conversion ); } break; default: @@ -1200,14 +1204,33 @@ // TInt CGSPenInputModel::GetFepInputMode() { - TInt inputMode = 0; + TUint inputMode = 0; switch(iInputLanguage) { case ELangPrcChinese: case ELangHongKongChinese: case ELangTaiwanChinese: { - iAknfepRepository->Get(KAknFepChineseInputMode, inputMode); + _LIT(Kx, "x"); + // This conversion is needed because KAknFepChineseInputMode cenrep key original type was 16bit int. + // now type is changed to string, so that it can accommodate bigger values like EHangul 0x16000. + TBuf conversion; + iAknfepRepository->Get( KAknFepChineseInputMode, conversion ); + + TInt len = conversion.Find(Kx); + TLex lex; + + if(len) + { + TPtrC ptr = conversion.Mid(len +1); + lex.Assign(ptr); + } + else + { + lex.Assign(conversion); + } + + lex.Val(inputMode, EHex); } break; default: @@ -1404,7 +1427,6 @@ supportMode = iPenInputServer.SupportInputMode( iInputLanguage ); } - TBool supportHWR = EFalse; if( supportMode & EPluginInputModeHwr || supportMode & EPluginInputModeFSc || supportMode & EPluginInputModeFingerHwr)