270 { |
270 { |
271 __LOGMETHODSTARTEND( EPhoneControl, |
271 __LOGMETHODSTARTEND( EPhoneControl, |
272 "CPhoneKeyEventForwarder::OfferKeyEventBeforeControlStackL"); |
272 "CPhoneKeyEventForwarder::OfferKeyEventBeforeControlStackL"); |
273 |
273 |
274 TKeyResponse response( EKeyWasNotConsumed ); |
274 TKeyResponse response( EKeyWasNotConsumed ); |
275 if( !IsKeyBlocked( aKeyEvent ) ) |
275 |
276 { |
276 // Handle key events before FEP |
277 // Handle key events before FEP |
277 // This is must becouse FEP consumes * key and when |
278 // This is must becouse FEP consumes * key and when |
278 // editor is in alphanumeric mode FEP consumes all alphanumeric |
279 // editor is in alphanumeric mode FEP consumes all alphanumeric |
279 // keys |
280 // keys |
280 switch( aType ) |
281 switch( aType ) |
281 { |
282 { |
282 // EEventKeyDown |
283 // EEventKeyDown |
283 case EEventKeyDown: |
284 case EEventKeyDown: |
284 response = HandleEventKeyDownBeforeControlStackL( aKeyEvent ); |
285 response = HandleEventKeyDownBeforeControlStackL( aKeyEvent ); |
285 break; |
286 break; |
286 // EEventKey |
287 // EEventKey |
287 case EEventKey: |
288 case EEventKey: |
288 response = HandleEventKeyBeforeControlStackL( aKeyEvent ); |
289 response = HandleEventKeyBeforeControlStackL( aKeyEvent ); |
289 break; |
290 break; |
290 // EEventKeyUp |
291 // EEventKeyUp |
291 case EEventKeyUp: |
292 case EEventKeyUp: |
292 response = HandleEventKeyUpBeforeControlStackL( aKeyEvent ); |
293 response = HandleEventKeyUpBeforeControlStackL( aKeyEvent ); |
293 break; |
294 break; |
294 default: |
295 default: |
295 break; |
296 break; |
|
297 } |
|
298 |
|
299 } |
296 } |
300 return response; |
297 return response; |
301 } |
298 } |
302 |
299 |
303 |
300 |
311 TEventCode aType ) |
308 TEventCode aType ) |
312 { |
309 { |
313 __LOGMETHODSTARTEND( EPhoneControl, |
310 __LOGMETHODSTARTEND( EPhoneControl, |
314 "CPhoneKeyEventForwarder::OfferKeyEventAfterControlStackL"); |
311 "CPhoneKeyEventForwarder::OfferKeyEventAfterControlStackL"); |
315 |
312 |
316 if( !IsKeyBlocked( aKeyEvent ) ) |
313 // Send key to editor |
317 { |
314 iStateMachine->State()->HandleKeyEventL( aKeyEvent, aType ); |
318 // Send key to editor |
315 |
319 iStateMachine->State()->HandleKeyEventL( aKeyEvent, aType ); |
316 if( EEventKeyUp == aType |
320 |
317 && EKeyNull != iKeyPressedDown ) |
321 if( EEventKeyUp == aType |
318 { |
322 && EKeyNull != iKeyPressedDown ) |
319 // Handle short key press |
323 { |
320 iStateMachine->State()->HandleKeyMessageL( |
324 // Handle short key press |
321 MPhoneKeyEvents::EPhoneKeyShortPress, |
325 iStateMachine->State()->HandleKeyMessageL( |
322 TKeyCode( iKeyPressedDown ) ); |
326 MPhoneKeyEvents::EPhoneKeyShortPress, |
323 |
327 TKeyCode( iKeyPressedDown ) ); |
324 // Reset key code |
328 |
325 iScanCode = EStdKeyNull; |
329 // Reset key code |
326 iKeyPressedDown = EKeyNull; |
330 iScanCode = EStdKeyNull; |
|
331 iKeyPressedDown = EKeyNull; |
|
332 } |
|
333 } |
327 } |
334 |
328 |
335 return EKeyWasNotConsumed; |
329 return EKeyWasNotConsumed; |
336 } |
330 } |
337 |
331 |
545 |
539 |
546 __PHONELOG1( EBasic, EPhoneControl, |
540 __PHONELOG1( EBasic, EPhoneControl, |
547 "CPhoneKeyEventHandler::ConvertKeyCode aCode (%d)", aCode ); |
541 "CPhoneKeyEventHandler::ConvertKeyCode aCode (%d)", aCode ); |
548 } |
542 } |
549 |
543 |
550 // ----------------------------------------------------------------------------- |
|
551 // CPhoneKeyEventForwarder::IsKeyBlocked |
|
552 // ----------------------------------------------------------------------------- |
|
553 // |
|
554 TBool CPhoneKeyEventForwarder::IsKeyBlocked( const TKeyEvent& aKeyEvent ) const |
|
555 { |
|
556 TBool ret = EFalse; |
|
557 |
|
558 // Check blocked keys |
|
559 const RArray<TInt>& keyScanCodeList = iStateMachine->State()->GetBlockedKeyList(); |
|
560 TInt count = keyScanCodeList.Count(); |
|
561 if( count ) |
|
562 { |
|
563 for( TInt i = 0; i < count; i++ ) |
|
564 { |
|
565 if( keyScanCodeList[i] == aKeyEvent.iScanCode ) |
|
566 { |
|
567 ret = ETrue; |
|
568 } |
|
569 } |
|
570 } |
|
571 __PHONELOG1( EBasic, EPhoneControl, |
|
572 "CPhoneKeyEventHandler::IsKeyBlocked return (%d)", ret ); |
|
573 |
|
574 return ret; |
|
575 } |
|
576 |
|
577 // End of File |
544 // End of File |
578 |
545 |