diff -r bd83ceabce89 -r 5a1685599b76 textinput/peninputarc/src/peninputclient/penclientimpl.cpp --- a/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Tue Sep 14 21:59:06 2010 +0300 +++ b/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Wed Sep 15 12:34:44 2010 +0300 @@ -992,6 +992,16 @@ TInt RPeninputServerImpl::AddPenUiActivationHandler( MPenUiActivationHandler* aHandler,TInt aType) { + // To avoid add repeatedly + for (TInt i=0; iHandleServerExit(); - iHandler->HandleServerEventL(ESignalServerExit); + HandleServerTerminatedL(); return; } } @@ -1301,6 +1318,26 @@ } // --------------------------------------------------------------------------- +// CPeninputServerObserver::HandleServerTerminatedL() +// --------------------------------------------------------------------------- +// +void CPeninputServerObserver::HandleServerTerminatedL() + { + iServerExit = ETrue; + + if ( iPeninputServer ) + { + iPeninputServer->HandleServerExit(); + } + + if ( iHandler ) + { + iHandler->HandleServerEventL( ESignalServerExit ); + } + + } + +// --------------------------------------------------------------------------- // CPeninputServerObserver::RunError // --------------------------------------------------------------------------- //