fep/aknfep/src/AknFepManager.cpp
branchRCL_3
changeset 12 5e18d8c489d6
parent 11 c8fb4cf7b3ae
child 13 1bbdde98cc2d
equal deleted inserted replaced
11:c8fb4cf7b3ae 12:5e18d8c489d6
    67 
    67 
    68 #include <tagma.h>
    68 #include <tagma.h>
    69 #include <frmtview.h>
    69 #include <frmtview.h>
    70 #include <aknedformaccessor.h>
    70 #include <aknedformaccessor.h>
    71 
    71 
    72 #include <AknFep.rsg>
    72 #include <aknfep.rsg>
    73 #include <avkon.mbg>
    73 #include <avkon.mbg>
    74 
    74 
    75 #include "aknconsts.h"
    75 #include "aknconsts.h"
    76 #include <aknfeppeninputenums.h>
    76 #include <aknfeppeninputenums.h>
    77 #include <eikproc.h>                // User Dictionary
    77 #include <eikproc.h>                // User Dictionary
  1246                         	if(!iPrimaryCandidate)
  1246                         	if(!iPrimaryCandidate)
  1247                             iPtiEngine->HandleCommandL( EPtiCommandUserActionGetIndexOfSecondaryCandidate, 
  1247                             iPtiEngine->HandleCommandL( EPtiCommandUserActionGetIndexOfSecondaryCandidate, 
  1248         							&wordIndexToSelect );
  1248         							&wordIndexToSelect );
  1249                             
  1249                             
  1250                         	if( iQwertyInputMode 
  1250                         	if( iQwertyInputMode 
  1251                         	    && ( iExactWordPopupContent->IsPopUpVisible() 
  1251                         	    && IsExactWordPopUpShown()
  1252                         	    	|| ( iFepPluginManager && iFepPluginManager->IsTooltipOpenOnFSQ() ) )
       
  1253                         	    && aCode == EKeyUpArrow )
  1252                         	    && aCode == EKeyUpArrow )
  1254 	                        	{
  1253 	                        	{
  1255 		                        iExactWordPopupContent->HidePopUp();
  1254 		                        iExactWordPopupContent->HidePopUp();
  1256                             
  1255                             
  1257                                 // When press up, if FSQ is opened, 
  1256                                 // When press up, if FSQ is opened, 
  1513                 else if(FepUI()->HandleKeyL(aCode, aLength))
  1512                 else if(FepUI()->HandleKeyL(aCode, aLength))
  1514                     {
  1513                     {
  1515                     response = EKeyWasConsumed;
  1514                     response = EKeyWasConsumed;
  1516                     }
  1515                     }
  1517                 SendEventsToPluginManL( EPluginHideTooltip );
  1516                 SendEventsToPluginManL( EPluginHideTooltip );
  1518                 if(iExactWordPopupContent && iExactWordPopupContent->IsPopUpVisible())
  1517                 iExactWordPopupContent->HidePopUp();
  1519                     {
       
  1520                     iExactWordPopupContent->HidePopUp();
       
  1521                     }               
       
  1522 #else
  1518 #else
  1523                 else if (FepUI()->HandleKeyL(aCode, aLength))
  1519                 else if (FepUI()->HandleKeyL(aCode, aLength))
  1524                     {
  1520                     {
  1525                     response = EKeyWasConsumed;
  1521                     response = EKeyWasConsumed;
  1526                     }                
  1522                     }                
  1542 
  1538 
  1543             // When press delete key, if FSQ is opened, 
  1539             // When press delete key, if FSQ is opened, 
  1544             // also need to check and close tooltip on it.
  1540             // also need to check and close tooltip on it.
  1545 			SendEventsToPluginManL( EPluginHideTooltip );
  1541 			SendEventsToPluginManL( EPluginHideTooltip );
  1546 
  1542 
  1547 			if(iExactWordPopupContent && iExactWordPopupContent->IsPopUpVisible())
  1543 		    iExactWordPopupContent->HidePopUp();
  1548 				{
       
  1549 		        iExactWordPopupContent->HidePopUp();
       
  1550 				}
       
  1551         	if ( IsFlagSet( EFlagInsideInlineEditingTransaction ) )
  1544         	if ( IsFlagSet( EFlagInsideInlineEditingTransaction ) )
  1552             	{
  1545             	{
  1553             	TryRemoveNoMatchesIndicatorL();
  1546             	TryRemoveNoMatchesIndicatorL();
  1554             	UpdateCbaL(NULL);
  1547             	UpdateCbaL(NULL);
  1555             	CommitInlineEditL();
  1548             	CommitInlineEditL();
  3310         if (keyHandled)
  3303         if (keyHandled)
  3311             {
  3304             {
  3312             aResponse = EKeyWasConsumed;
  3305             aResponse = EKeyWasConsumed;
  3313 #ifdef RD_INTELLIGENT_TEXT_INPUT
  3306 #ifdef RD_INTELLIGENT_TEXT_INPUT
  3314             // Predictive QWERTY changes ---->
  3307             // Predictive QWERTY changes ---->
  3315             ShowExactWordPopupIfNecessaryL();
  3308             if ( iLangMan->IsSplitView() || ( iFepPluginManager && !iFepPluginManager->EnableITIOnFSQ()))
       
  3309                 {
       
  3310                 ShowExactWordPopupIfNecessaryL();
       
  3311                 }
  3316             // Predictive QWERTY changes <----
  3312             // Predictive QWERTY changes <----
  3317             }
  3313             }
  3318 #endif //RD_INTELLIGENT_TEXT_INPUT
  3314 #endif //RD_INTELLIGENT_TEXT_INPUT
  3319 
  3315 
  3320             // The indicators should be updated only if the key was handled. Otherwise
  3316             // The indicators should be updated only if the key was handled. Otherwise
  3826     {
  3822     {
  3827     switch (aEvent)
  3823     switch (aEvent)
  3828         {
  3824         {
  3829         case CAknExtendedInputCapabilities::MAknEventObserver::EActivatePenInputRequest:
  3825         case CAknExtendedInputCapabilities::MAknEventObserver::EActivatePenInputRequest:
  3830             SendEventsToPluginManL( EPluginEditorActivate );
  3826             SendEventsToPluginManL( EPluginEditorActivate );
       
  3827             break;
       
  3828         case CAknExtendedInputCapabilities::MAknEventObserver::EClosePenInputRequest:
       
  3829             if ( iFepPluginManager )
       
  3830                 {
       
  3831                 iFepPluginManager->ClosePluginInputModeL( EFalse );
       
  3832                 }
  3831             break;
  3833             break;
  3832         case CAknExtendedInputCapabilities::MAknEventObserver::EPointerEventReceived:
  3834         case CAknExtendedInputCapabilities::MAknEventObserver::EPointerEventReceived:
  3833 
  3835 
  3834 /* 
  3836 /* 
  3835 #ifdef RD_TACTILE_FEEDBACK
  3837 #ifdef RD_TACTILE_FEEDBACK
  4460             // delete it for support auto update to text-case
  4462             // delete it for support auto update to text-case
  4461             //SetFlag(EFlagSupressAutoUpdate);
  4463             //SetFlag(EFlagSupressAutoUpdate);
  4462             iCaseMan->SetCurrentCase(EAknEditorLowerCase);
  4464             iCaseMan->SetCurrentCase(EAknEditorLowerCase);
  4463             break;
  4465             break;
  4464         case EAknCmdEditModeNumber:
  4466         case EAknCmdEditModeNumber:
       
  4467             //if current input is arabic finger hwr, then change the default 
       
  4468             //number mode.
       
  4469             if(iSharedDataInterface->InputTextLanguage() == ELangArabic 
       
  4470                && iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr)
       
  4471                 {
       
  4472                 iSharedDataInterface->SetDefaultArabicNumberMode(0);
       
  4473                 HandleChangeInFocus();
       
  4474                 SendEventsToPluginManL(EPluginArabicNumModeChanged, 0);                
       
  4475                 break;
       
  4476                 }
  4465         case EJapanFepCmdEditModeNumber:
  4477         case EJapanFepCmdEditModeNumber:
  4466         case EChinFepCmdModeNumber:
  4478         case EChinFepCmdModeNumber:
  4467             SendEventsToPluginManL( EPluginCloseMode, EFalse );
  4479             SendEventsToPluginManL( EPluginCloseMode, EFalse );
  4468             HandleChangeInFocus();
  4480             HandleChangeInFocus();
  4469             if ( iLanguageCapabilities.iArabicIndicDigitsAllowed 
  4481             if ( iLanguageCapabilities.iArabicIndicDigitsAllowed 
  4473                 iLanguageCapabilities.iLocalDigitType = EDigitTypeWestern;
  4485                 iLanguageCapabilities.iLocalDigitType = EDigitTypeWestern;
  4474                 }
  4486                 }
  4475             TryChangeModeL(ENumber);
  4487             TryChangeModeL(ENumber);
  4476             break;
  4488             break;
  4477         case EAknCmdEditModeArabicIndicNumber:
  4489         case EAknCmdEditModeArabicIndicNumber:
  4478             SendEventsToPluginManL( EPluginCloseMode, EFalse );
  4490             //if current input is arabic finger hwr, then change the default 
  4479             HandleChangeInFocus();
  4491             //number mode.
  4480             iLanguageCapabilities.iLocalDigitType = EDigitTypeArabicIndic;
  4492             if(iSharedDataInterface->InputTextLanguage() == ELangArabic 
  4481             TryChangeModeL(ENativeNumber);
  4493                && iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr)
       
  4494                 {
       
  4495                 iSharedDataInterface->SetDefaultArabicNumberMode(1);
       
  4496                 SendEventsToPluginManL(EPluginArabicNumModeChanged, 1);
       
  4497                 HandleChangeInFocus();
       
  4498                 }
       
  4499             else
       
  4500                 {
       
  4501                 SendEventsToPluginManL( EPluginCloseMode, EFalse );
       
  4502                 HandleChangeInFocus();
       
  4503                 iLanguageCapabilities.iLocalDigitType = EDigitTypeArabicIndic;
       
  4504                 TryChangeModeL(ENativeNumber);
       
  4505                 }
  4482             break;
  4506             break;
  4483             /*For Eastern Arabic Numeric*/
  4507             /*For Eastern Arabic Numeric*/
  4484         case EAknCmdEditModeEasternArabicIndicNumber:
  4508         case EAknCmdEditModeEasternArabicIndicNumber:
  4485             SendEventsToPluginManL( EPluginCloseMode, EFalse );
  4509             SendEventsToPluginManL( EPluginCloseMode, EFalse );
  4486             HandleChangeInFocus();
  4510             HandleChangeInFocus();
  4601                 }
  4625                 }
  4602             // Show Thai specific SCT with Thai vowels and tonemarks
  4626             // Show Thai specific SCT with Thai vowels and tonemarks
  4603             if ( (iLanguageCapabilities.iInputLanguageCode == ELangThai ) &&
  4627             if ( (iLanguageCapabilities.iInputLanguageCode == ELangThai ) &&
  4604                  (iMode!=ENumber && iMode != ENativeNumber ) )
  4628                  (iMode!=ENumber && iMode != ENativeNumber ) )
  4605                 {
  4629                 {
  4606 #ifdef RD_INTELLIGENT_TEXT_INPUT                 	
  4630 				TInt resourceId = 0;
  4607                 // if itut call Thai multitap HandleCommandL to Launch SCT	
  4631 				if (iAknFepThaiSCTSelector)
  4608                 if(!iQwertyInputMode)
  4632 					{
  4609                     {
  4633 					resourceId = iAknFepThaiSCTSelector->ThaiSCRResourceId(PreviousChar(),EPtiKeyStar);
  4610 #endif                    	
  4634 					}
  4611                     TInt resourceId = 0;
  4635 				LaunchSpecialCharacterTableL(resourceId, 
  4612                     if (iAknFepThaiSCTSelector)
  4636 											 aCommandId==EAknCmdEditInsertSymbol, 
  4613                          {
  4637 											 aCommandId==EAknCmdEditInsertSmiley);                  
  4614                         resourceId = iAknFepThaiSCTSelector->ThaiSCRResourceId(PreviousChar(),EPtiKeyStar);
       
  4615                         }
       
  4616                     LaunchSpecialCharacterTableL(resourceId, 
       
  4617                                                  aCommandId==EAknCmdEditInsertSymbol, 
       
  4618                                                  aCommandId==EAknCmdEditInsertSmiley);
       
  4619 #ifdef RD_INTELLIGENT_TEXT_INPUT                 	                    
       
  4620                     }
       
  4621                 else
       
  4622                     {
       
  4623                     CAknFepUIManagerWestern* westernUIManager = static_cast<CAknFepUIManagerWestern*>(FepUI());
       
  4624                     LaunchSpecialCharacterTableL(westernUIManager->ThaiSCTResourceId(static_cast<TChar>(PreviousChar()),EPtiKeyStar),
       
  4625                                                  aCommandId==EAknCmdEditInsertSymbol, 
       
  4626                                                  aCommandId==EAknCmdEditInsertSmiley);                    
       
  4627                     }
       
  4628 #endif                    
       
  4629                 }
  4638                 }
  4630             else
  4639             else
  4631             {
  4640             {
  4632                 LaunchSpecialCharacterTableL(0, 
  4641                 LaunchSpecialCharacterTableL(0, 
  4633                                              aCommandId==EAknCmdEditInsertSymbol, 
  4642                                              aCommandId==EAknCmdEditInsertSymbol, 
  4969             SendEventsToPluginManL( EPluginCloseMode, EFalse );
  4978             SendEventsToPluginManL( EPluginCloseMode, EFalse );
  4970             HandleChangeInFocus();                        
  4979             HandleChangeInFocus();                        
  4971             SendEventsToPluginManL( EPluginSwitchToLandscape);
  4980             SendEventsToPluginManL( EPluginSwitchToLandscape);
  4972             }
  4981             }
  4973             break;
  4982             break;
  4974         case EPenInputCmdSwitchToVkeyBasedInput:
  4983         /*case EPenInputCmdSwitchToVkeyBasedInput:
  4975             {
  4984             {
  4976             SendEventsToPluginManL( EPluginCloseMode, EFalse );
  4985             SendEventsToPluginManL( EPluginCloseMode, EFalse );
  4977             HandleChangeInFocus();            
  4986             HandleChangeInFocus();            
  4978             SendEventsToPluginManL( EPluginSwitchMode);
  4987             SendEventsToPluginManL( EPluginSwitchMode);
  4979             }
  4988             }
  4980             break;
  4989             break;*/
  4981         case EPenInputCmdWritingSpeed:
  4990         case EPenInputCmdWritingSpeed:
  4982             {
  4991             {
  4983             SetStopProcessFocus(ETrue);
  4992             SetStopProcessFocus(ETrue,EFalse);
  4984             HandleChangeInFocus();
       
  4985             LaunchWritingSpeedPopupListL();
  4993             LaunchWritingSpeedPopupListL();
  4986             HandleChangeInFocus();
  4994 			SetStopProcessFocus(EFalse);
  4987             iStopProcessFocus = EFalse;
       
  4988             }
  4995             }
  4989             break;
  4996             break;
  4990         case EPenInputCmdGuidingLine:
  4997         case EPenInputCmdGuidingLine:
  4991             {
  4998             {
  4992             SetStopProcessFocus(ETrue);
  4999             SetStopProcessFocus(ETrue,EFalse);
  4993             HandleChangeInFocus();
       
  4994             LaunchGuidingLinePopupListL();
  5000             LaunchGuidingLinePopupListL();
  4995             HandleChangeInFocus();
  5001 			SetStopProcessFocus(EFalse);
  4996             iStopProcessFocus = EFalse;
       
  4997             }
  5002             }
  4998             break;
  5003             break;
  4999         default:
  5004         default:
  5000             break;
  5005             break;
  5001         }
  5006         }
  8480     // equivalent of the OLD ShowExactWordPopupIfNecessaryL; but
  8485     // equivalent of the OLD ShowExactWordPopupIfNecessaryL; but
  8481     // now I can call TryPopExactWordInICFL and 
  8486     // now I can call TryPopExactWordInICFL and 
  8482     // TryPopExactWordInOtherPlaceL directly after extracting them from
  8487     // TryPopExactWordInOtherPlaceL directly after extracting them from
  8483     // the OLD ShowExactWordPopupIfNecessaryL.
  8488     // the OLD ShowExactWordPopupIfNecessaryL.
  8484     iExactWordPopupContent->HidePopUp();
  8489     iExactWordPopupContent->HidePopUp();
  8485     SendEventsToPluginManL(EPluginHideTooltip);
  8490 //    SendEventsToPluginManL(EPluginHideTooltip);
  8486     if (!iWesternPredictive || !IsFlagSet(EFlagInsideInlineEditingTransaction))
  8491     if (!iWesternPredictive || !IsFlagSet(EFlagInsideInlineEditingTransaction))
  8487         return;
  8492         return;
  8488 
  8493 
  8489     if (EPtiKeyboardHalfQwerty == KeyboardLayout())
  8494     if (EPtiKeyboardHalfQwerty == KeyboardLayout())
  8490         {
  8495         {
  8491         if (IsFlagSet(CAknFepManager::EFlagNoMatches))
  8496         if (IsFlagSet(CAknFepManager::EFlagNoMatches))
  8492             UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);
  8497             UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);
  8493         return;
  8498         return;
  8494         }
  8499         }
  8495 
  8500 
  8496     TryPopExactWordInICFL();
  8501     //TryPopExactWordInICFL();
  8497     if (iFepPluginManager && !iFepPluginManager->IsTooltipOpenOnFSQ())
  8502     if (iFepPluginManager && !iFepPluginManager->IsTooltipOpenOnFSQ())
  8498         TryPopExactWordInOtherPlaceL();
  8503         TryPopExactWordInOtherPlaceL();
  8499     }
  8504     }
  8500 
  8505 
  8501 void CAknFepManager::TryPopExactWordInICFL()
  8506 void CAknFepManager::TryPopExactWordInICFL()
  8504 	return;
  8509 	return;
  8505 #endif
  8510 #endif
  8506 	
  8511 	
  8507     // Before open tooltip,  
  8512     // Before open tooltip,  
  8508     // also need to check and close tooltip on it.
  8513     // also need to check and close tooltip on it.
  8509     SendEventsToPluginManL(EPluginHideTooltip);
  8514 //    SendEventsToPluginManL(EPluginHideTooltip);
  8510     if (!iWesternPredictive || !IsFlagSet(EFlagInsideInlineEditingTransaction))
  8515     if (!iWesternPredictive || !IsFlagSet(EFlagInsideInlineEditingTransaction))
       
  8516         {
       
  8517         SendEventsToPluginManL(EPluginHideTooltip);
  8511         return;
  8518         return;
       
  8519         }
  8512 
  8520 
  8513     TInt activeIdx, secondaryIdx;
  8521     TInt activeIdx, secondaryIdx;
  8514     GetCandidatesWithIndexL(NULL, activeIdx, secondaryIdx);
  8522     GetCandidatesWithIndexL(NULL, activeIdx, secondaryIdx);
  8515     if (activeIdx == secondaryIdx)
  8523     if (activeIdx == secondaryIdx)
       
  8524         {
       
  8525         SendEventsToPluginManL(EPluginHideTooltip);
  8516         return;
  8526         return;
       
  8527         }
  8517 
  8528 
  8518     CDesCArray* candidates = new (ELeave) CDesCArrayFlat(16);
  8529     CDesCArray* candidates = new (ELeave) CDesCArrayFlat(16);
  8519     CleanupStack::PushL(candidates);
  8530     CleanupStack::PushL(candidates);
  8520     GetCandidatesWithIndexL(candidates, activeIdx, secondaryIdx);
  8531     GetCandidatesWithIndexL(candidates, activeIdx, secondaryIdx);
  8521     CleanupStack::PopAndDestroy(candidates);
  8532     CleanupStack::PopAndDestroy(candidates);
  8522     if (activeIdx == secondaryIdx)
  8533     if (activeIdx == secondaryIdx)
       
  8534         {
       
  8535         SendEventsToPluginManL(EPluginHideTooltip);
  8523         return;
  8536         return;
       
  8537         }
  8524 
  8538 
  8525     if (iFepPluginManager)
  8539     if (iFepPluginManager)
  8526         SendEventsToPluginManL(EPluginShowTooltip, secondaryIdx);
  8540         SendEventsToPluginManL(EPluginShowTooltip, secondaryIdx);
  8527     }
  8541     }
  8528 
  8542 
 12981                     }
 12995                     }
 12982                 }
 12996                 }
 12983            // Add This condition for  Phonebook, ReTe, PF52.50_2008_wk32: 
 12997            // Add This condition for  Phonebook, ReTe, PF52.50_2008_wk32: 
 12984            // Navigation bar disappears after tapping find pane and then returning back to Names list view.
 12998            // Navigation bar disappears after tapping find pane and then returning back to Names list view.
 12985            if (!(editingStateIndicator == (MAknEditingStateIndicator*)iIndicator &&
 12999            if (!(editingStateIndicator == (MAknEditingStateIndicator*)iIndicator &&
 12986                ( iFepPluginManager && iFepPluginManager->PluginInputMode() == EPluginInputModeItut ) &&
 13000                ( iFepPluginManager && ( iFepPluginManager->PluginInputMode() == EPluginInputModeItut 
       
 13001             		                    || iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ ) ) &&
 12987                IsFindPaneEditor()))
 13002                IsFindPaneEditor()))
 12988                {
 13003                {
 12989                editingStateIndicator->SetState(newState);
 13004                editingStateIndicator->SetState(newState);
 12990                }
 13005                }
 12991 
 13006 
 15104 
 15119 
 15105 TKeyResponse CAknFepManager::HandleNaviEventOutsideInlineEditL(TUint aCode, 
 15120 TKeyResponse CAknFepManager::HandleNaviEventOutsideInlineEditL(TUint aCode, 
 15106                                                                TKeyPressLength aLength)
 15121                                                                TKeyPressLength aLength)
 15107     {
 15122     {
 15108     TKeyResponse response = EKeyWasNotConsumed;
 15123     TKeyResponse response = EKeyWasNotConsumed;
 15109 
 15124     if ( iFepPluginManager && iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr 
       
 15125     	 && aCode == EKeyBackspace )
       
 15126     	{
       
 15127         return response;
       
 15128     	}
       
 15129     
 15110     if (TryHandleCommonArrowAndBackspaceFunctionalityL(aCode, response))
 15130     if (TryHandleCommonArrowAndBackspaceFunctionalityL(aCode, response))
 15111         {
 15131         {
 15112         return response;
 15132         return response;
 15113         }
 15133         }
 15114     if (WesternPredictive())
 15134     if (WesternPredictive())
 18214         {
 18234         {
 18215     	currentEditorSCTResId = charMap;
 18235     	currentEditorSCTResId = charMap;
 18216         }
 18236         }
 18217     if(R_AKNFEP_SCT_NUMERIC_MODE_CHARS_PLAIN == charMap && 
 18237     if(R_AKNFEP_SCT_NUMERIC_MODE_CHARS_PLAIN == charMap && 
 18218        ( R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_LATIN_ONLY == currentEditorSCTResId || 
 18238        ( R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_LATIN_ONLY == currentEditorSCTResId || 
 18219          R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG == currentEditorSCTResId ) )
 18239          R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG == currentEditorSCTResId || 
       
 18240          R_AVKON_URL_SPECIAL_CHARACTER_TABLE_DIALOG == currentEditorSCTResId) )
 18220         {
 18241         {
 18221         TBool isEmpty = ETrue;
 18242         TBool isEmpty = ETrue;
 18222         TRAP_IGNORE(isEmpty = GetSctLengthL(charMap));
 18243         TRAP_IGNORE(isEmpty = GetSctLengthL(charMap));
 18223         if(isEmpty)
 18244         if(isEmpty)
 18224            {
 18245            {
 18376             {
 18397             {
 18377             PrepareFepAfterDialogExitL(fepUid);
 18398             PrepareFepAfterDialogExitL(fepUid);
 18378             SetCcpuFlag(ECcpuStateSupressCursorMoveToEnd);
 18399             SetCcpuFlag(ECcpuStateSupressCursorMoveToEnd);
 18379 			// after closing SCT, need change dim state.
 18400 			// after closing SCT, need change dim state.
 18380             SendEventsToPluginManL(EPluginEnableFetchDimState);
 18401             SendEventsToPluginManL(EPluginEnableFetchDimState);
 18381 
 18402 #ifdef RD_SCALABLE_UI_V2 
       
 18403             iNotifyPlugin = EFalse;
       
 18404             if( iFepFullyConstructed && iFepPluginManager)
       
 18405                 {
       
 18406                  if (iFepPluginManager->PluginInputMode() == EPluginInputModeItut ||
       
 18407                      iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ ||
       
 18408                      iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr)
       
 18409                     {
       
 18410                     SetStopProcessFocus(EFalse);
       
 18411                     }            
       
 18412                  else
       
 18413                     {
       
 18414                     HandleChangeInFocus();
       
 18415                     }
       
 18416                 }
       
 18417             else
       
 18418                 {
       
 18419                 HandleChangeInFocus();
       
 18420                 }   
       
 18421             // Set the flag, not change focus for next.
       
 18422             iNotifyPlugin = ETrue;
       
 18423 #endif            
 18382 
 18424 
 18383             //Removes auto-complition part if SCT is launched and any special character is selected 
 18425             //Removes auto-complition part if SCT is launched and any special character is selected 
 18384 #ifdef RD_INTELLIGENT_TEXT_INPUT
 18426 #ifdef RD_INTELLIGENT_TEXT_INPUT
 18385             if( specialChars.Length() > 0 )
 18427             if( specialChars.Length() > 0 )
 18386                 {
 18428                 {
 18429                                 {
 18471                                 {
 18430                                 cursorSelection = TCursorSelection(iUncommittedText.iCursorPos + 1,
 18472                                 cursorSelection = TCursorSelection(iUncommittedText.iCursorPos + 1,
 18431                                                                    iUncommittedText.iAnchorPos);
 18473                                                                    iUncommittedText.iAnchorPos);
 18432                                 }
 18474                                 }
 18433                             }
 18475                             }
 18434                         // Get new InputCapabilities immediatly.
       
 18435                         CCoeEnv* coeEnv = CCoeEnv::Static();
       
 18436                         iInputCapabilities = static_cast<const CCoeAppUi*>(coeEnv->AppUi())->InputCapabilities();
       
 18437                         if (EditorState())
 18476                         if (EditorState())
 18438                             {
 18477                             {
 18439                             if (charAsDesc[0] == CEditableText::EParagraphDelimiter)
 18478                             if (charAsDesc[0] == CEditableText::EParagraphDelimiter)
 18440                                 {
 18479                                 {
 18441                                 // This is line feed character. Post it to editor and let it decide
 18480                                 // This is line feed character. Post it to editor and let it decide
 18472                                                        NULL);                            
 18511                                                        NULL);                            
 18473                             }
 18512                             }
 18474                         }
 18513                         }
 18475                     }
 18514                     }
 18476                 }
 18515                 }
 18477 #ifdef RD_SCALABLE_UI_V2 
       
 18478             iNotifyPlugin = EFalse;
       
 18479             if( iFepFullyConstructed && iFepPluginManager)
       
 18480                 {
       
 18481                  if (iFepPluginManager->PluginInputMode() == EPluginInputModeItut ||
       
 18482                      iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ ||
       
 18483                      iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr)
       
 18484                     {
       
 18485                     SetStopProcessFocus(EFalse);
       
 18486                     }            
       
 18487                  else
       
 18488                     {
       
 18489                     HandleChangeInFocus();
       
 18490                     }
       
 18491                 }
       
 18492             else
       
 18493                 {
       
 18494                 HandleChangeInFocus();
       
 18495                 }   
       
 18496             // Set the flag, not change focus for next.
       
 18497             iNotifyPlugin = ETrue;
       
 18498 #endif
       
 18499             }
 18516             }
 18500         else
 18517         else
 18501             {
 18518             {
 18502             iClosePeninputUi = EFalse;
 18519             iClosePeninputUi = EFalse;
 18503             iStopProcessFocus = EFalse;                   
 18520             iStopProcessFocus = EFalse;                   
 18793 	if(iInputCapabilities.FepAwareTextEditor())
 18810 	if(iInputCapabilities.FepAwareTextEditor())
 18794     	{
 18811     	{
 18795     	iInputCapabilities.FepAwareTextEditor()->
 18812     	iInputCapabilities.FepAwareTextEditor()->
 18796     		GetCursorSelectionForFep(currentEditorSelection);
 18813     		GetCursorSelectionForFep(currentEditorSelection);
 18797     	}    
 18814     	}    
 18798         
 18815     
 18799 	if(!IsMfneEditor() &&
 18816     TInt inputMode = PluginInputMode();
 18800 		(PluginInputMode() == EPluginInputModeItut ||
 18817     TBool isArabicFingerHwr = (inputMode == EPluginInputModeFingerHwr &&
 18801 		 PluginInputMode() == EPluginInputModeFSQ)  &&
 18818 	                           GetInputLanguageFromSharedDataInterface() == ELangArabic);	
 18802 		 currentEditorSelection.Length() != 0)
 18819 	if(!IsMfneEditor() && (inputMode == EPluginInputModeItut || 
       
 18820 		                   inputMode == EPluginInputModeFSQ  || isArabicFingerHwr)  
       
 18821 		               && currentEditorSelection.Length() != 0)
 18803     	{
 18822     	{
 18804     	
 18823     	
 18805         if ((aKeyEvent.iScanCode == EStdKeyLeftArrow) || (aKeyEvent.iScanCode == EStdKeyRightArrow)) 
 18824         if ((aKeyEvent.iScanCode == EStdKeyLeftArrow) || (aKeyEvent.iScanCode == EStdKeyRightArrow)) 
 18806             {   
 18825             {   
 18807             if (!(aKeyEvent.iModifiers & EModifierShift))
 18826             if (!(aKeyEvent.iModifiers & EModifierShift))
 20720     iShiftAndSpace = aFlag;
 20739     iShiftAndSpace = aFlag;
 20721     }
 20740     }
 20722 
 20741 
 20723 void CAknFepManager::HideExactWordPopUp()
 20742 void CAknFepManager::HideExactWordPopUp()
 20724 	{
 20743 	{
 20725 	iExactWordPopupContent->HidePopUp();	
 20744 	iExactWordPopupContent->HidePopUp();
       
 20745 	SendEventsToPluginManL( EPluginHideTooltip );
 20726 	}
 20746 	}
 20727 
 20747 
 20728 TBool CAknFepManager::IsExactWordPopUpShown()
 20748 TBool CAknFepManager::IsExactWordPopUpShown()
 20729 	{
 20749 	{
 20730 return iExactWordPopupContent->IsPopUpVisible();	
 20750 #ifdef RD_SCALABLE_UI_V2 
       
 20751 	return iExactWordPopupContent->IsPopUpVisible()
       
 20752            || ( iFepPluginManager && iFepPluginManager->IsTooltipOpenOnFSQ() );
       
 20753 #else
       
 20754 	return iExactWordPopupContent->IsPopUpVisible();
       
 20755 #endif // RD_SCALABLE_UI_V2
 20731 	}
 20756 	}
 20732 void CAknFepManager::StopDisplayingMenuBar()
 20757 void CAknFepManager::StopDisplayingMenuBar()
 20733     {
 20758     {
 20734     if (iEditMenuBar)
 20759     if (iEditMenuBar)
 20735         {
 20760         {