messagingappbase/msgeditor/viewsrc/MsgAddressControlEditor.cpp
branchRCL_3
changeset 24 696bfeff199e
parent 18 fbb813aef148
--- a/messagingappbase/msgeditor/viewsrc/MsgAddressControlEditor.cpp	Mon Jun 21 15:36:19 2010 +0300
+++ b/messagingappbase/msgeditor/viewsrc/MsgAddressControlEditor.cpp	Thu Jul 15 18:34:37 2010 +0300
@@ -1672,6 +1672,15 @@
           aKeyEvent.iCode == EKeyDevice3 ) &&
         iValidHighlightable )
         {
+        if ( aKeyEvent.iCode == EKeyDevice3
+                && iFindItemEventReceived )
+            {
+            // Find item was activated by touch, 
+            // no need to restore highlight
+            iFindItemEventReceived = EFalse;
+            return EKeyWasNotConsumed;
+            }
+    
         if ( !SelectionLength() )
             {
             // Enable highlight if hw keys used
@@ -1743,21 +1752,17 @@
                 if ( currentField &&
                      iPreviousField == currentField )
                     {
-                    // We will send new EMsgFindItemEvent so that we can separate 
-                    // single click item activation and old key based activation.
-                    // This is just quick fix for doing it, other implementations should
-                    // be considered(e.g. storing state in editor or using some flags).
-                    // This is done because in AppUI::HandleKeyEvent we must separate
-                    // activation methods for enabling highlight when using keys. 
+                    // Addressfield text was clicked, we will send simulated key event for
+                    // opening context sensitive menu in AppUI::HandleKeyEvent               
                     TKeyEvent event;
-                    event.iCode = EMsgFindItemKeyEvent;
-                    event.iScanCode = EMsgFindItemKeyEvent;
+                    event.iCode = EKeyDevice3;
+                    event.iScanCode = EKeyDevice3;
                     event.iModifiers = 0;
                     event.iRepeats = 0;
                     
-                    iCoeEnv->WsSession().SimulateKeyEvent( event );
-                    
                     forwardRequest = EFalse;
+                    iFindItemEventReceived = ETrue;
+                    iCoeEnv->WsSession().SimulateKeyEvent( event );  
                     }
                 
                 if ( SelectionLength() )