--- 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<KFepChineseInputModeLength> 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<KFepChineseInputModeLength> 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)