89 CAknServKeyFilter::~CAknServKeyFilter() |
89 CAknServKeyFilter::~CAknServKeyFilter() |
90 { |
90 { |
91 FreeHardwareStateKeys(); |
91 FreeHardwareStateKeys(); |
92 |
92 |
93 RWindowGroup& groupWin = iCoeEnv->RootWin(); |
93 RWindowGroup& groupWin = iCoeEnv->RootWin(); |
94 groupWin.CancelCaptureKeyUpAndDowns( iHomeKeyHandle ); |
|
95 groupWin.CancelCaptureKeyUpAndDowns( iQwertyOnKeyHandle ); |
94 groupWin.CancelCaptureKeyUpAndDowns( iQwertyOnKeyHandle ); |
96 groupWin.CancelCaptureKeyUpAndDowns( iQwertyOffKeyHandle ); |
95 groupWin.CancelCaptureKeyUpAndDowns( iQwertyOffKeyHandle ); |
97 groupWin.CancelCaptureKey( iFlipOpenKeyHandle ); |
96 groupWin.CancelCaptureKey( iFlipOpenKeyHandle ); |
98 groupWin.CancelCaptureKey( iFlipCloseKeyHandle ); |
97 groupWin.CancelCaptureKey( iFlipCloseKeyHandle ); |
99 #ifdef RD_INTELLIGENT_TEXT_INPUT |
98 #ifdef RD_INTELLIGENT_TEXT_INPUT |
109 // --------------------------------------------------------------------------- |
108 // --------------------------------------------------------------------------- |
110 // |
109 // |
111 void CAknServKeyFilter::ConstructL( CAknCapAppServerAppUi& aAppUi ) |
110 void CAknServKeyFilter::ConstructL( CAknCapAppServerAppUi& aAppUi ) |
112 { |
111 { |
113 RWindowGroup& groupWin = iCoeEnv->RootWin(); |
112 RWindowGroup& groupWin = iCoeEnv->RootWin(); |
114 iHomeKeyHandle = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication0, 0, 0); |
|
115 iQwertyOnKeyHandle = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication7, 0, 0); // EKeyQwertyOn |
113 iQwertyOnKeyHandle = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication7, 0, 0); // EKeyQwertyOn |
116 iQwertyOffKeyHandle = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication8, 0, 0); // EKeyQwertyOff |
114 iQwertyOffKeyHandle = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication8, 0, 0); // EKeyQwertyOff |
117 iFlipOpenKeyHandle = groupWin.CaptureKey(EKeyDeviceA, 0, 0); // EKeyFlipOpen |
115 iFlipOpenKeyHandle = groupWin.CaptureKey(EKeyDeviceA, 0, 0); // EKeyFlipOpen |
118 iFlipCloseKeyHandle = groupWin.CaptureKey(EKeyDeviceB, 0, 0); // EKeyFlipClose |
116 iFlipCloseKeyHandle = groupWin.CaptureKey(EKeyDeviceB, 0, 0); // EKeyFlipClose |
119 |
117 |
340 { |
338 { |
341 iAppUi->PhoneKeyUpReceived(); |
339 iAppUi->PhoneKeyUpReceived(); |
342 return EKeyWasConsumed; |
340 return EKeyWasConsumed; |
343 } |
341 } |
344 |
342 |
345 if ( aKeyEvent.iScanCode == EStdKeyApplication0 ) |
343 if ( aKeyEvent.iScanCode == EStdKeyApplication7 || // EKeyQwertyOn |
346 { |
|
347 return HandleHomeKeyEventL( aType ); |
|
348 } |
|
349 else if ( aKeyEvent.iScanCode == EStdKeyApplication7 || // EKeyQwertyOn |
|
350 aKeyEvent.iScanCode == EStdKeyApplication8 ) // EKeyQwertyOff |
344 aKeyEvent.iScanCode == EStdKeyApplication8 ) // EKeyQwertyOff |
351 { |
345 { |
352 return HandleQwertyKeyEvent( aKeyEvent, aType ); |
346 return HandleQwertyKeyEvent( aKeyEvent, aType ); |
353 } |
347 } |
354 else if ( aType==EEventKey && HandleHardwareStateKeyL( aKeyEvent.iCode ) ) |
348 else if ( aType==EEventKey && HandleHardwareStateKeyL( aKeyEvent.iCode ) ) |
357 } |
351 } |
358 |
352 |
359 return EKeyWasNotConsumed; |
353 return EKeyWasNotConsumed; |
360 } |
354 } |
361 |
355 |
362 |
|
363 // --------------------------------------------------------------------------- |
|
364 // CAknServKeyFilter::HandleHomeKeyEventL |
|
365 // Handles the pressing of applications key. |
|
366 // --------------------------------------------------------------------------- |
|
367 // |
|
368 TKeyResponse CAknServKeyFilter::HandleHomeKeyEventL( TEventCode aType ) |
|
369 { |
|
370 if ( iAppUi->IsAppsKeySuppressed() ) |
|
371 { |
|
372 return EKeyWasNotConsumed; |
|
373 } |
|
374 |
|
375 if ( aType == EEventKeyDown ) |
|
376 { |
|
377 delete iHomeTimer; |
|
378 iHomeTimer = NULL; |
|
379 iHomeTimer = CPeriodic::NewL( CActive::EPriorityHigh ); |
|
380 |
|
381 iHomeTimer->Start( KHomeHoldDelay, 1, TCallBack( HomeTickL, this ) ); |
|
382 return EKeyWasConsumed; |
|
383 } |
|
384 else if ( aType == EEventKeyUp ) |
|
385 { |
|
386 if ( iHomeTimer && iHomeTimer->IsActive() ) |
|
387 { |
|
388 iHomeTimer->Cancel(); |
|
389 delete iHomeTimer; |
|
390 iHomeTimer = NULL; |
|
391 if ( !iAppUi->HandleShortAppsKeyPressL() ) |
|
392 { |
|
393 RWsSession& ws = iEikonEnv->WsSession(); |
|
394 TApaTaskList apList( ws ); |
|
395 TApaTask task = apList.FindApp( iHomeViewId.iAppUid ); |
|
396 if( task.Exists() && task.WgId() == ws.GetFocusWindowGroup() ) |
|
397 { |
|
398 GfxTransEffect::BeginFullScreen( |
|
399 AknTransEffect::EApplicationExit, |
|
400 TRect(), |
|
401 AknTransEffect::EParameterType, |
|
402 AknTransEffect::GfxTransParam( iHomeViewId.iAppUid ) ); |
|
403 } |
|
404 |
|
405 ToggleShellL(); |
|
406 } |
|
407 |
|
408 return EKeyWasConsumed; |
|
409 } |
|
410 } |
|
411 |
|
412 return EKeyWasNotConsumed; |
|
413 } |
|
414 |
356 |
415 |
357 |
416 // --------------------------------------------------------------------------- |
358 // --------------------------------------------------------------------------- |
417 // CAknServKeyFilter::HandleQwertyKeyEvent |
359 // CAknServKeyFilter::HandleQwertyKeyEvent |
418 // Handles the pressing of QWERTY key. |
360 // Handles the pressing of QWERTY key. |