fep/aknfep/src/AknFepPluginManager.cpp
branchRCL_3
changeset 6 6ceef9a83b1a
parent 5 a47de9135b21
child 7 6defe5d1bd39
--- a/fep/aknfep/src/AknFepPluginManager.cpp	Fri Mar 12 15:44:07 2010 +0200
+++ b/fep/aknfep/src/AknFepPluginManager.cpp	Mon Mar 15 12:42:02 2010 +0200
@@ -290,7 +290,8 @@
     if( !iPenInputSvrConnected || !iPenInputServer.IsVisible() || iPenInputServer.IsDimmed() )
         {
         if( iFepMan.FepAwareTextEditor() )
-            {
+            {            
+  			iPreferredUiMode = ETrue;	
             TryChangePluginInputModeByModeL((TPluginInputMode)(iSharedData.PluginInputMode()),
                                             EPenInputOpenManually,
                                             ERangeInvalid);
@@ -1196,6 +1197,12 @@
 		    iFepMan.UpdateCbaL( NULL );
 		    }
         
+        if ( iFepMan.EditorState() )
+            {
+            iFepMan.EditorState()->SetFlags( 
+                iFepMan.EditorState()->Flags() | EAknEditorFlagTouchInputModeOpened );
+            }		
+		
         // Notify application touch window state
         NotifyAppUiImeTouchWndStateL( ETrue );
 
@@ -1277,6 +1284,12 @@
                 
     iFepMan.UiInterface()->TouchPaneSetInputMethodIconActivated(EFalse);
     
+	if ( iFepMan.EditorState() )
+	{
+	iFepMan.EditorState()->SetFlags( 
+		iFepMan.EditorState()->Flags() & ~EAknEditorFlagTouchInputModeOpened );
+	}
+	
     if ( prePluginInputMode == EPluginInputModeVkb )
         {
         iFepMan.UpdateIndicators();
@@ -1503,6 +1516,15 @@
                                                     ERangeInvalid);
                     }
                     break;
+                case EPeninputCmdHwr:
+                	{
+                	ClosePluginInputModeL(ETrue);               
+                	iFepMan.TryCloseUiL();  
+                	TryChangePluginInputModeByModeL( EPluginInputModeFingerHwr, 
+                	                                 EPenInputOpenManually,
+                	                                 ERangeInvalid );
+                	}
+                	break;
                 case EFepInputCmdHelp:
                     {
                     if (iInMenu)
@@ -1852,17 +1874,23 @@
     	TInt curInputMode = iLangMan.CurrentImePlugin()->CurrentMode();
     	TBool isChinese = iFepMan.IsChineseInputLanguage();
     	
-    	if ( !isChinese && ( curInputMode == EPluginInputModeItut ) && 
-    	        !( disabledInputMode & EPluginInputModeFSQ ))
+    	if ( !isChinese && ( curInputMode != EPluginInputModeFSQ ) 
+    			&& !( disabledInputMode & EPluginInputModeFSQ ))
     	    {
     	    aMenuPane->SetItemDimmed( EPeninputCmdFSQ, EFalse );
     	    }
     	
-    	if ( !isChinese && ( curInputMode == EPluginInputModeFSQ ) &&
-    	        !( disabledInputMode & EPluginInputModeItut ))
+    	if ( !isChinese && ( curInputMode != EPluginInputModeItut ) 
+    			&& !( disabledInputMode & EPluginInputModeItut ))
     	    {
     	    aMenuPane->SetItemDimmed(EPenInputCmdVITUT, EFalse);
     	    }
+    	
+    	if ( iFepMan.IsArabicInputLanguage() && ( curInputMode != EPluginInputModeFingerHwr )
+    			&& !( disabledInputMode & EPluginInputModeFingerHwr ))
+    	    {
+    	    aMenuPane->SetItemDimmed( EPeninputCmdHwr, EFalse );
+    	    }
         //For arabic finger hwr input orientation.
         TInt index = 0;        
         if(iPluginInputMode == EPluginInputModeFingerHwr