--- a/uifw/AvKon/src/aknsgcc.cpp Tue Aug 31 15:28:30 2010 +0300
+++ b/uifw/AvKon/src/aknsgcc.cpp Wed Sep 01 12:16:19 2010 +0100
@@ -46,7 +46,8 @@
EHandlingChange,
EInAknSrv,
ESystemFaded,
- ENeverRelinquish
+ ENeverRelinquish,
+ EUseForegroundPriority
};
@@ -618,11 +619,11 @@
RThread myThread;
TProcessPriority priority = myThread.ProcessPriority();
- if( IsSystemFaded() )
+ if ( IsSystemFaded() || iFlags[EUseForegroundPriority] )
{
- // Solution for EKKG-7RQ9U8:
// If the system is faded we have a popup on screen.
- // Get the process behind the foreground process.
+ // Get the process behind the foreground process, the
+ // EUseForegroundPriority should also affect only that process.
TApaTask task = TApaTaskList(iEikonEnv->WsSession()).FindByPos(1);
// Check if this application is next behind the foreground app.
@@ -657,6 +658,23 @@
}
}
+void CAknSgcClient::UseForegroundPriorityDuringRelinquish(
+ TBool aUseForeground )
+ {
+ CAknSgcClient* self = Static();
+ if ( self )
+ {
+ if ( aUseForeground )
+ {
+ self->iFlags.Set( EUseForegroundPriority );
+ }
+ else
+ {
+ self->iFlags.Clear( EUseForegroundPriority );
+ }
+ }
+ }
+
EXPORT_C CAknLayoutConfig& CAknSgcClient::LayoutConfig()
{
CAknSgcClient* self = Static();