diff -r b73a2e62868f -r 6752808b2036 locationmanager/locationtrail/src/cpositioninfo.cpp --- a/locationmanager/locationtrail/src/cpositioninfo.cpp Tue Feb 02 00:24:33 2010 +0200 +++ b/locationmanager/locationtrail/src/cpositioninfo.cpp Fri Feb 19 23:14:48 2010 +0200 @@ -149,7 +149,9 @@ { Cancel(); - // Start shutdown timer... + iFirstInterval = ETrue; + iUpdateOptions.SetUpdateInterval( TTimeIntervalMicroSeconds(KFirstInterval) ); + iPositioner.Close(); iPosServer.Close(); } @@ -161,17 +163,10 @@ void CPositionInfo::RunL() { iTrail->Position( iPositionInfo, iStatus.Int() ); - if ( iFirstInterval && IsActive() ) + if ( iFirstInterval && iTrailCaptureSetting == RLocationTrail::ECaptureAll ) { - Cancel(); - iUpdateOptions.SetUpdateInterval( iUpdateInterval ); - if ( iTrailCaptureSetting == RLocationTrail::ECaptureAll ) - { - User::LeaveIfError( iPositioner.SetUpdateOptions( iUpdateOptions ) ); - iPositioner.NotifyPositionUpdate( iPositionInfo, iStatus ); - } - SetActive(); - + iUpdateOptions.SetUpdateInterval( TTimeIntervalMicroSeconds( iUpdateInterval ) ); + User::LeaveIfError( iPositioner.SetUpdateOptions( iUpdateOptions ) ); iFirstInterval = EFalse; } }