diff -r 2d690156cf8f -r 315810614048 videoplayback/videoplaybackviews/src/mpxvideoplaybackuserinputhandler.cpp --- a/videoplayback/videoplaybackviews/src/mpxvideoplaybackuserinputhandler.cpp Thu Jul 15 18:41:27 2010 +0300 +++ b/videoplayback/videoplaybackviews/src/mpxvideoplaybackuserinputhandler.cpp Thu Aug 19 09:57:17 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 19 % +// Version : %version: 20 % // INCLUDE FILES @@ -448,7 +448,8 @@ void CMPXVideoPlaybackUserInputHandler::ProcessKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ) { - MPX_ENTER_EXIT(_L("MPXVideoPlaybackUserInputHandler::ProcessKeyEvent()")); + MPX_ENTER_EXIT(_L("MPXVideoPlaybackUserInputHandler::ProcessKeyEvent()"), + _L("iProcessingInputType = %d, aType = %d"), iProcessingInputType, aType ); switch ( iProcessingInputType ) { @@ -457,28 +458,30 @@ if ( aType == EEventKeyDown && IsUserInputAllowed() ) { iProcessingInputType = EMpxVideoKeyboard; - iLastPressedKeyCode = aKeyEvent.iCode; iLastPressedKeyScanCode = aKeyEvent.iScanCode; - iContainer->DoHandleKeyEventL(aKeyEvent, aType); + iContainer->DoHandleKeyEventL( aKeyEvent, aType ); } break; } case EMpxVideoKeyboard: { - if ( aType == EEventKeyUp ) + MPX_DEBUG(_L("aKeyEvent.iScanCode = %d, iLastPressedKeyScanCode = %d"), + aKeyEvent.iScanCode, iLastPressedKeyScanCode ); + + // + // Only handle events for the key being handled + // + if ( aKeyEvent.iScanCode == iLastPressedKeyScanCode ) { - // only handle up event for the key being handled - // ignore spurious key presses - if ( aKeyEvent.iCode == iLastPressedKeyCode && - aKeyEvent.iScanCode == iLastPressedKeyScanCode ) + iContainer->DoHandleKeyEventL( aKeyEvent, aType ); + + if ( aType == EEventKeyUp ) { - iContainer->DoHandleKeyEventL(aKeyEvent, aType); - - // reset the value only on key up event iProcessingInputType = EMpxVideoNone; } } + break; } } // switch