diff -r 4eb1ae11334f -r e6a39382bb9c fep/aknfep/src/AknFepManager.cpp --- a/fep/aknfep/src/AknFepManager.cpp Wed Apr 14 16:18:34 2010 +0300 +++ b/fep/aknfep/src/AknFepManager.cpp Tue Apr 27 16:59:43 2010 +0300 @@ -3538,7 +3538,10 @@ } #endif // Close UI - FepUI()->CloseUI(); + if ( FepUI()) + { + FepUI()->CloseUI(); + } } else { @@ -7009,6 +7012,8 @@ return; } #endif + // dim state changed, need fetch it again. + SendEventsToPluginManL(EPluginEnableFetchDimState); //The CCPU flag ECcpuStateShiftkeyWasPressedBeforeLosingFocus suggests that the candidate list was closed //with a long key press of shift key. If so then, FEP needs to set the EFlagShiftKeyDepressed for the CCPU mode to work @@ -13959,6 +13964,8 @@ aPositionOfInsertionPointInInlineText = decoratedInlineEdit->Length(); + iUncommittedText.iCursorPos = iUncommittedText.iAnchorPos + aPositionOfInsertionPointInInlineText; + iInputCapabilities.FepAwareTextEditor()->UpdateFepInlineTextL( bufferPtr, aPositionOfInsertionPointInInlineText); @@ -15800,6 +15807,7 @@ //Hindi Change Bug Fix iSharedDataInterface->SetInputTextLanguage(languages->At(index)); CAknEnv::Static()->SettingCache().Update(KEikInputLanguageChange); + SetActiveInputLanguage( languages->At(index) ); ChangeInputLanguageL(languages->At(index)); SetFlag( EFlagNewSharedDataInputLanguage | EFlagNewSharedDataInputMode ); // This pice of code TSW Fute error fixing. @@ -17357,20 +17365,20 @@ } if (iLanguageCapabilities.iArabicIndicDigitsAllowed && - AknTextUtils::DigitModeQuery(editorType) && + (AknTextUtils::DigitModeQuery(editorType) || iMode == ENativeNumber) && !ASCIIDigits) { aDestination = EDigitTypeArabicIndic; } else if (iLanguageCapabilities.iEasternArabicIndicDigitsAllowed && - AknTextUtils::DigitModeQuery(editorType)&& + (AknTextUtils::DigitModeQuery(editorType) || iMode == ENativeNumber) && !ASCIIDigits) { aDestination = EDigitTypeEasternArabicIndic; } /*Hindi*/ else if ( iLanguageCapabilities.iIndicDigitsAllowed && - AknTextUtils::DigitModeQuery(editorType) && + (AknTextUtils::DigitModeQuery(editorType) || iMode == ENativeNumber) && !ASCIIDigits) { aDestination = EDigitTypeDevanagari; @@ -18212,7 +18220,9 @@ { currentEditorSCTResId = charMap; } - if(R_AKNFEP_SCT_NUMERIC_MODE_CHARS_PLAIN == charMap && R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_LATIN_ONLY == currentEditorSCTResId) + if(R_AKNFEP_SCT_NUMERIC_MODE_CHARS_PLAIN == charMap && + ( R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_LATIN_ONLY == currentEditorSCTResId || + R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG == currentEditorSCTResId ) ) { TBool isEmpty = ETrue; TRAP_IGNORE(isEmpty = GetSctLengthL(charMap)); @@ -18367,29 +18377,9 @@ { PrepareFepAfterDialogExitL(fepUid); SetCcpuFlag(ECcpuStateSupressCursorMoveToEnd); - -#ifdef RD_SCALABLE_UI_V2 - - if( iFepFullyConstructed && iFepPluginManager) - { - if (iFepPluginManager->PluginInputMode() == EPluginInputModeItut || - iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ || - iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr) - { - SetStopProcessFocus(EFalse); - } - else - { - HandleChangeInFocus(); - } - } - else - { - HandleChangeInFocus(); - } - // Set the flag, not change focus for next. - iDisalbleFocusChangeForSCT = ETrue; -#endif + // after closing SCT, need change dim state. + SendEventsToPluginManL(EPluginEnableFetchDimState); + //Removes auto-complition part if SCT is launched and any special character is selected #ifdef RD_INTELLIGENT_TEXT_INPUT @@ -18442,6 +18432,9 @@ iUncommittedText.iAnchorPos); } } + // Get new InputCapabilities immediatly. + CCoeEnv* coeEnv = CCoeEnv::Static(); + iInputCapabilities = static_cast(coeEnv->AppUi())->InputCapabilities(); if (EditorState()) { if (charAsDesc[0] == CEditableText::EParagraphDelimiter) @@ -18466,11 +18459,11 @@ TKeyEvent delKey = {8, EStdKeyBackspace, 1, 0}; CCoeEnv::Static()->SimulateKeyEventL(delKey, EEventKey); } - InsertTextFromDialogL(charAsDesc, cursorSelection); //There may be several char to be inserted, need disable Focus change to avoid multi-focus change. #ifdef RD_SCALABLE_UI_V2 iDisalbleFocusChangeForSCT = ETrue; -#endif +#endif + InsertTextFromDialogL(charAsDesc, cursorSelection); } // Clear dead key, vowel sequence and vietnamese tone mark states. iPtiEngine->HandleCommandL(EPtiCommandGetAndClearLastVietnameseChar, @@ -18483,6 +18476,28 @@ } } } +#ifdef RD_SCALABLE_UI_V2 + + if( iFepFullyConstructed && iFepPluginManager) + { + if (iFepPluginManager->PluginInputMode() == EPluginInputModeItut || + iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ || + iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr) + { + SetStopProcessFocus(EFalse); + } + else + { + HandleChangeInFocus(); + } + } + else + { + HandleChangeInFocus(); + } + // Set the flag, not change focus for next. + iDisalbleFocusChangeForSCT = ETrue; +#endif } else {