diff -r e6a39382bb9c -r c8fb4cf7b3ae fep/aknfep/src/AknFepManager.cpp --- a/fep/aknfep/src/AknFepManager.cpp Tue Apr 27 16:59:43 2010 +0300 +++ b/fep/aknfep/src/AknFepManager.cpp Tue May 11 16:31:42 2010 +0300 @@ -3534,7 +3534,7 @@ // but need to restore fep state here if ( iFepPluginManager ) { - iFepPluginManager->ResetItiStateL(); + TRAP_IGNORE(iFepPluginManager->ResetItiStateL()); } #endif // Close UI @@ -3728,7 +3728,6 @@ case EAknClosePenInputRequest: if ( iFepPluginManager ) { - // Fix bug ou1cimx1#225126, editor team asks that the parameter is EFalse. iFepPluginManager->ClosePluginInputModeL( EFalse ); } break; @@ -3746,7 +3745,7 @@ // In between, if editor context not in inline edit state. // Try to update the case editor gets the focus, and editor // context come in inline state. - //iCaseMan->UpdateCase(ENullNaviEvent); + iCaseMan->UpdateCase( ENullNaviEvent ); break; default: @@ -3769,7 +3768,6 @@ env->SimulateKeyEventL(keyEvent,EEventKey); iFepPluginManager->ResetMenuState(); iFepPluginManager->RemoveLastFocusedWinFromOpenList(); - // Fix bug ou1cimx1#225126, editor team asks that the parameter is EFalse. iFepPluginManager->ClosePluginInputModeL( EFalse ); } } @@ -4093,8 +4091,7 @@ HBufC* spell = iFepPluginManager->SpellTextInput(); iFepPluginManager->SetITUTSpellingStateL(EFalse); - iFepPluginManager->HideSpellEditor(); - iFepPluginManager->SetInSpellModeFlag( EFalse ); + iFepPluginManager->HideSpellEditor(); if (spell) { @@ -4153,8 +4150,7 @@ if (iFepPluginManager->IsSpellVisible()) { TRAP_IGNORE(iFepPluginManager->SetITUTSpellingStateL(EFalse)); - iFepPluginManager->HideSpellEditor(); - iFepPluginManager->SetInSpellModeFlag( EFalse ); + iFepPluginManager->HideSpellEditor(); TRAP_IGNORE(UpdateCbaL(NULL)); if (iFepPluginManager->CaseUpdatesSupressed()) @@ -7005,13 +7001,6 @@ void CAknFepManager::HandleChangeInFocusL() { // Closing SCT has done focus change, so here just reset the flag. -#ifdef RD_SCALABLE_UI_V2 - if(iDisalbleFocusChangeForSCT) - { - iDisalbleFocusChangeForSCT = EFalse; - return; - } -#endif // dim state changed, need fetch it again. SendEventsToPluginManL(EPluginEnableFetchDimState); @@ -11457,10 +11446,14 @@ } case ELangVietnamese: { - validInlineCharacter = (aCharacter.IsAlpha() && - !((category & TChar::ELetterOtherGroup))) || - ((category == TChar::EMarkGroup) && - (bdCategory == TChar::ENonSpacingMark)); + // For full screen qwerty, validInlineCharacter is true + if( !( iFepPluginManager && iFepPluginManager->EnableITIOnFSQ() ) ) + { + validInlineCharacter = (aCharacter.IsAlpha() && + !((category & TChar::ELetterOtherGroup))) || + ((category == TChar::EMarkGroup) && + (bdCategory == TChar::ENonSpacingMark)); + } break; } case ELangThai: @@ -12113,17 +12106,18 @@ #endif iHashKeyMan->SetMode(iMode, IsPredictive()); // ensure editor is aware of new fep mode + TCursorSelection curSel; if ( IsFepAwareTextEditor() ) { EditorState()->SetCurrentInputMode(EditorModeFromFepMode(aMode)); - iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText); + iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(curSel); AdjustCursorTypeForCurrentPosition(); } // when cursor is in between two words and SCT is launched and // cancel key is pressed, dont move the cursor at the end of // second word. - if (WesternPredictive(aMode) && !iUncommittedText.Length() + if (WesternPredictive(aMode) && !curSel.Length() && CursorInsideWord() && !IsCcpuFlagSet(ECcpuStateSupressCursorMoveToEnd) #ifdef RD_INTELLIGENT_TEXT_INPUT && (!iSupressCursorMoveToEndChrKeyPressed) @@ -13078,13 +13072,13 @@ { if ( iLanguageCapabilities.iInputLanguageCode == ELangArabic ) { - //iLanguageCapabilities.iLocalDigitType = EDigitTypeArabicIndic; + iLanguageCapabilities.iLocalDigitType = EDigitTypeArabicIndic; aNewState=EArabicIndicNumeric; } else if ( iLanguageCapabilities.iInputLanguageCode == ELangFarsi || iLanguageCapabilities.iInputLanguageCode == ELangUrdu ) { - //iLanguageCapabilities.iLocalDigitType = EDigitTypeEasternArabicIndic; + iLanguageCapabilities.iLocalDigitType = EDigitTypeEasternArabicIndic; aNewState=EArabicIndicNumeric; } else if ( iLanguageCapabilities.iInputLanguageCode == ELangHindi ) @@ -14526,7 +14520,7 @@ } if ( iFepPluginManager && iFepPluginManager->IsSupportITIOnFSQ() ) { - SendEventsToPluginManL( EPluginUpdatePenInputITIStatus ); + TRAP_IGNORE(SendEventsToPluginManL( EPluginUpdatePenInputITIStatus )); } } } @@ -18363,6 +18357,11 @@ } ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed); + if ( iFepPluginManager && iFepPluginManager->IsSpellVisible() ) + { + iFepPluginManager->SetLaunchSCTInSpell( ETrue ); + } + if (iUiInterface->CharMapDialogL( sctChars, specialChars, @@ -18461,7 +18460,6 @@ } //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 InsertTextFromDialogL(charAsDesc, cursorSelection); } @@ -18477,7 +18475,7 @@ } } #ifdef RD_SCALABLE_UI_V2 - + iNotifyPlugin = EFalse; if( iFepFullyConstructed && iFepPluginManager) { if (iFepPluginManager->PluginInputMode() == EPluginInputModeItut || @@ -18496,15 +18494,14 @@ HandleChangeInFocus(); } // Set the flag, not change focus for next. - iDisalbleFocusChangeForSCT = ETrue; + iNotifyPlugin = ETrue; #endif } else { iClosePeninputUi = EFalse; iStopProcessFocus = EFalse; - } - + } PrepareFepAfterDialogExitL(fepUid); } }