uiacceltk/hitchcock/ServerCore/Src/alfstreamerserver.cpp
branchRCL_3
changeset 10 88b23e2e82e1
parent 8 10534483575f
child 11 46927d61fef3
--- a/uiacceltk/hitchcock/ServerCore/Src/alfstreamerserver.cpp	Mon Mar 15 12:43:37 2010 +0200
+++ b/uiacceltk/hitchcock/ServerCore/Src/alfstreamerserver.cpp	Wed Mar 31 23:03:58 2010 +0300
@@ -161,9 +161,13 @@
 // NewSessionL
 // ---------------------------------------------------------------------------
 //   
-CSession2* CAlfStreamerServer::NewSessionL(const TVersion& /*aVersion*/,const RMessage2& /*aMessage*/) const
+CSession2* CAlfStreamerServer::NewSessionL(const TVersion& /*aVersion*/,const RMessage2& aMessage) const
     {
-	CSession2* newSession = new(ELeave) CAlfStreamerServerSession();
+    RThread t;    
+    aMessage.Client(t);
+    CleanupClosePushL(t);
+	CSession2* newSession = new(ELeave) CAlfStreamerServerSession(t.Id());
+    CleanupStack::PopAndDestroy();
     iSessions++;
     
     return newSession;   
@@ -188,9 +192,13 @@
 // HandleClientExit
 // ---------------------------------------------------------------------------
 //   
-void CAlfStreamerServer::HandleClientExit(const CSession2* /*aClient*/)
+void CAlfStreamerServer::HandleClientExit(const CAlfStreamerServerSession* aClient)
     {
     iSessions--;
+    if (WindowMgr())
+        {
+        WindowMgr()->HandleClientExit(aClient->ThreadId());
+        }
     if (!iSessions)
         {
         // CActiveScheduler::Stop(); // TODO: lets not die, if client dies.
@@ -539,7 +547,7 @@
         }
     
     if ( aOp == KAlfCompositionLowOnGraphicsMemory ||  aOp == KAlfCompositionGoodOnGraphicsMemory 
-		|| aOp == KAlfCompositionTargetHidden ||aOp == KAlfCompositionTargetVisible)
+		|| aOp == KAlfCompositionTargetHidden ||aOp == KAlfCompositionTargetVisible  || aOp == KAlfCompositionLayoutSwitchComplete)
         {
         aMessage.Complete(KErrNone);
         QueueRequestAllSessionsL(KNullDesC8(), aOp, ETrue);    
@@ -688,7 +696,7 @@
 // constructor
 // ---------------------------------------------------------------------------
 //   
-CAlfStreamerServerSession::CAlfStreamerServerSession() : iScreenNumber(KErrNotFound)
+CAlfStreamerServerSession::CAlfStreamerServerSession(const TThreadId& aThreadId) : iScreenNumber(KErrNotFound), iThreadId(aThreadId)
     {
     }
 
@@ -968,6 +976,7 @@
     case KAlfCompositionTargetHidden:
     case KAlfCompositionTargetVisible:
     case KAlfCompositionTargetCreated:
+    case KAlfCompositionLayoutSwitchComplete:
         {
         aServer->HandleCompositionEventL(this, aOp, aMessage);
         break;