diff -r 1367103c24e2 -r 696bfeff199e messagingappbase/msgeditor/viewsrc/MsgBodyControlEditor.cpp --- a/messagingappbase/msgeditor/viewsrc/MsgBodyControlEditor.cpp Mon Jun 21 15:36:19 2010 +0300 +++ b/messagingappbase/msgeditor/viewsrc/MsgBodyControlEditor.cpp Thu Jul 15 18:34:37 2010 +0300 @@ -256,7 +256,17 @@ { switch ( aKeyEvent.iCode ) { - case EKeyDevice3: + case EKeyDevice3: + { + if ( iFindItemEventReceived ) + { + // Find item was activated by touch, + // no need to restore highlight + iFindItemEventReceived = EFalse; + return EKeyWasNotConsumed; + } + // fall through + } case EKeyEnter: { // Restore highlight @@ -308,20 +318,17 @@ MAknItemFinderObserver::TEventFlag aEvent, TUint aFlags) { - // 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. + // Body text find item was clicked, we will send simulated key event for + // opening context sensitive menu in AppUI::HandleKeyEvent if ( MAknItemFinderObserver::EPointerEvent == aEvent ) { TKeyEvent event; - event.iCode = EMsgFindItemKeyEvent; - event.iScanCode = EMsgFindItemKeyEvent; + event.iCode = EKeyDevice3; + event.iScanCode = EKeyDevice3; event.iModifiers = 0; event.iRepeats = 0; + iFindItemEventReceived = ETrue; iCoeEnv->WsSession().SimulateKeyEvent( event ); } }