diff -r eb1f2e154e89 -r f5a1e66df979 textinput/peninputarc/src/peninputclient/penclientimpl.cpp --- a/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Tue Feb 02 01:02:04 2010 +0200 +++ b/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Fri Feb 19 23:09:27 2010 +0200 @@ -123,8 +123,11 @@ if(client && client->IsValid()) { RPeninputServerImpl* server = client->GetSingletonServer(); - TInt err = server->ServerReady() ? KErrNone : KErrLaunchingServer; - User::RequestComplete(aStatus,err); + TInt err = server->ServerReady() ? KErrNone : KErrLaunchingServer; + if ( aStatus ) + { + User::RequestComplete( aStatus, err ); + } return server; } @@ -253,12 +256,13 @@ return KErrNone; } } - else //server alreay there + else if ( error == KErrNone )//server alreay there { + iServerReady = ETrue; + AddObserver(); + if(aStatus) - OnServerStarted(KErrNone); - else - AddObserver(); + User::RequestComplete(iPendingRequest, error); } return error; } @@ -1527,17 +1531,17 @@ if(KErrNone == aErr) { iServerReady = ETrue; - } - - //create session - - TInt error = CreateSession( KPeninputServerName, + + //create session + aErr = CreateSession( KPeninputServerName, Version(), KDefaultMessageSlots,EIpcSession_Sharable); - if(KErrNone == error) - AddObserver(); - + if(KErrNone == aErr) + { + AddObserver(); + } + } User::RequestComplete(iPendingRequest, aErr); }