uiacceltk/hitchcock/plugins/alftranseffect/alftranseffectplugin/src/alfserverdrawer.cpp
--- a/uiacceltk/hitchcock/plugins/alftranseffect/alftranseffectplugin/src/alfserverdrawer.cpp Fri May 14 02:53:35 2010 +0300
+++ b/uiacceltk/hitchcock/plugins/alftranseffect/alftranseffectplugin/src/alfserverdrawer.cpp Tue May 25 17:55:19 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*/ )
{
@@ -1286,13 +1300,6 @@
highestHandle++;
iCurrentControlHandle = highestHandle;
}
-
-void CAlfServerDrawer::IncreaseFullScreenHandle()
- {
- TInt highestHandle = iCurrentControlHandle > iCurrentFullScreenHandle ? iCurrentControlHandle : iCurrentFullScreenHandle;
- highestHandle++;
- iCurrentFullScreenHandle = highestHandle;
- }
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
@@ -1339,7 +1346,7 @@
iFullScreenTimeout->Cancel();
// If we don't get an EndFullScreen in a timely manner,
// we generate an EndFullScreen signal by ourselves
- EndFullscreen();
+ EndFullscreen(ETrue);
}
}