diff -r f93c875b566e -r 3a60ebea00d0 uiacceltk/hitchcock/plugins/alftranseffect/alftranseffectplugin/src/alfserverdrawer.cpp --- a/uiacceltk/hitchcock/plugins/alftranseffect/alftranseffectplugin/src/alfserverdrawer.cpp Tue May 25 13:39:57 2010 +0300 +++ b/uiacceltk/hitchcock/plugins/alftranseffect/alftranseffectplugin/src/alfserverdrawer.cpp Wed Jun 09 10:41:25 2010 +0300 @@ -43,8 +43,15 @@ // This sets the maximum time for an effect. Even if the fxml file has specified a longer duration, // this will stop the effect. const TInt KAlfShortEffectTimeout = 4000000; + +// Note, The timeouts are DIFFERENT for EMULATOR AND ARMV5 +#ifdef __WINS__ +const TInt KAlfAppStartEffectTimeout = 800000; +const TInt KAlfLongEffectTimeout = 10000000; +#else const TInt KAlfAppStartEffectTimeout = 300000; const TInt KAlfLongEffectTimeout = 5000000; +#endif const TInt KAlfActiveControlFxGranularity = 4; const TInt KAlfLongApplicationStartContext = 20; @@ -671,7 +678,7 @@ // I don't think we need this TInt index = 0; - IncreaseFullScreenHandle(); + iCurrentFullScreenHandle = iToSid.iId; iFullScreenTransitionEndObserver->Cancel(); iFinishFullScreen->Cancel(); @@ -685,9 +692,10 @@ RMemWriteStream stream( bridgeBuffer, bufferSize ); // The writes should not leave if we have calculated our buffer length correctly. stream.WriteInt32L( MAlfGfxEffectPlugin::EBeginFullscreen ); - stream.WriteInt32L( iToSid.iId ); //iCurrentFullScreenHandle ); + stream.WriteInt32L( iToSid.iId ); stream.WriteInt32L( iType ); - stream.WriteInt32L( 0 ); // timeout triggered + stream.WriteInt32L( 0 ); // timeout? 0 always in BeginFullScreen + stream.WriteInt32L( 0 ); if ( iType == AknTransEffect::EParameterType && isExit ) { stream.WriteInt32L( iToWg ); @@ -810,7 +818,7 @@ // It appears that folder open and close never send endfullscreen, so for them the effect // must be started as soon as we get beginfullscreen - isAppStartEffect = EFalse; // disable different timeout effect for appstart effects + // isAppStartEffect = EFalse; // disable different timeout effect for appstart effects if (isAppStartEffect) { @@ -837,13 +845,14 @@ __ALFFXLOGSTRING("CAlfServerDrawer::SendEndFullscreen END no need"); return KErrNone; } - iFullScreenEndSent = ETrue; __ALFFXLOGSTRING("CAlfServerDrawer::SendEndFullscreen"); iFullScreenTransitionEndObserver->Cancel(); iFullScreenTimeout->Cancel(); iFinishFullScreen->Cancel(); + TBool timeout = iFullScreenTimeout->iTimeoutTriggered; TBool triggerStartEffectTimeout= iFullScreenTimeout->iTimeoutTriggered && iFullScreenTimeout->iIsStartEffect; + iFullScreenEndSent = !triggerStartEffectTimeout; iFullScreenTimeout->iTimeoutTriggered = EFalse; iFullScreenTimeout->iIsStartEffect = EFalse; @@ -879,7 +888,7 @@ // also the effect file name or something else to identify the effect // that is going to be used - TInt bufferSize = 12 * sizeof(TInt); // operation, type, 2 wg ids, 2 app uids, flags and rect, timeoutTriggered + TInt bufferSize = 13 * sizeof(TInt); // operation, type, 2 wg ids, 2 app uids, flags and rect, timeoutTriggered bufferSize += sizeof(TPtrC); bufferSize += resourceDir.Length() * 2; bufferSize += sizeof(TPtrC); @@ -904,6 +913,7 @@ stream.WriteInt32L( iCurrentFullScreenHandle ); stream.WriteInt32L( iType ); stream.WriteInt32L( triggerStartEffectTimeout ); + stream.WriteInt32L( timeout ); stream.WriteInt32L( iToWg ); stream.WriteInt32L( iFromWg ); @@ -934,6 +944,10 @@ iFullScreenFinished = EFalse; iFullScreenTimeout->iIsStartEffect = EFalse; + if (triggerStartEffectTimeout) + { + return KErrNone; + } if ( iAction == AknTransEffect::EApplicationExit /*|| iAction == 1001*/ ) { @@ -961,7 +975,8 @@ } iFullScreenTransitionEndObserver->Cancel(); - + iFinishFullScreen->Cancel(); + iFullScreenTimeout->Cancel(); iFullScreenFxSent = EFalse; iFullScreenEndSent = ETrue; @@ -1286,13 +1301,6 @@ highestHandle++; iCurrentControlHandle = highestHandle; } - -void CAlfServerDrawer::IncreaseFullScreenHandle() - { - TInt highestHandle = iCurrentControlHandle > iCurrentFullScreenHandle ? iCurrentControlHandle : iCurrentFullScreenHandle; - highestHandle++; - iCurrentFullScreenHandle = highestHandle; - } // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- @@ -1339,7 +1347,7 @@ iFullScreenTimeout->Cancel(); // If we don't get an EndFullScreen in a timely manner, // we generate an EndFullScreen signal by ourselves - EndFullscreen(); + EndFullscreen(ETrue); } }