--- a/uifw/AvKon/src/AknIndicatorContainer.cpp Wed Jun 09 09:58:37 2010 +0300
+++ b/uifw/AvKon/src/AknIndicatorContainer.cpp Mon Jun 21 15:57:43 2010 +0300
@@ -307,9 +307,6 @@
iIndicators =
new (ELeave) CAknIndicatorQueue( KAknIndicatorQueueGranularity );
}
-
-
- iTicker = CPeriodic::NewL( CActive::EPriorityLow );
}
@@ -4288,24 +4285,37 @@
if ( !iExtension->iIsForeground ||
R_AVKON_STATUS_PANE_LAYOUT_EMPTY == curId )
{
- if ( iTicker->IsActive() )
+ if ( iTicker )
{
iTicker->Cancel();
+ delete iTicker;
+ iTicker = NULL;
}
+
return;
}
- if ( !iTicker->IsActive() && iAnimatedIndicatorsShown > 0 )
+ if ( iAnimatedIndicatorsShown > 0 )
{
- iTicker->Start( KAknIndicatorAnimationShortDelay,
- KAknIndicatorAnimationInterval,
- TCallBack( TickerCallback, this ) );
+ if ( !iTicker )
+ {
+ TRAP_IGNORE( iTicker = CPeriodic::NewL( CActive::EPriorityLow ) );
+ }
+
+ if ( iTicker && !iTicker->IsActive() )
+ {
+ iTicker->Start( KAknIndicatorAnimationShortDelay,
+ KAknIndicatorAnimationInterval,
+ TCallBack( TickerCallback, this ) );
+ }
}
- else if ( iTicker->IsActive() && iAnimatedIndicatorsShown == 0 )
+ else if ( iTicker && iAnimatedIndicatorsShown == 0 )
{
// Cancel animation timer if animated indicators
// are not visible anymore.
iTicker->Cancel();
+ delete iTicker;
+ iTicker = NULL;
iSynchronizingValue = 0;
}
}