diff -r 10534483575f -r 88b23e2e82e1 uiacceltk/hitchcock/ServerCore/Src/alfstreamerserver.cpp --- 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;