--- a/camerauis/cameraapp/generic/src/CamViewBase.cpp Tue Apr 27 16:19:06 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamViewBase.cpp Tue May 11 15:56:11 2010 +0300
@@ -197,7 +197,7 @@
PRINT( _L("CCamViewBase::DoActivateL call deactivate"));
TBool wasCameraUser = IsCameraUser();
- DoDeactivate();
+ PrepareDeactivate();
// since we still use it
if( wasCameraUser )
{
@@ -212,9 +212,15 @@
if ( !iContainer )
{
CreateContainerL();
+
+ if( iTempContainer )
+ {
+ AppUi()->RemoveFromStack( iTempContainer );
+ }
AppUi()->AddToStackL( *this, iContainer );
iContainer->ActivateL();
}
+ PostDeactivate();
SetTitlePaneTextL();
@@ -278,6 +284,57 @@
}
// ---------------------------------------------------------------------------
+// CCamViewBase::PrepareDeactivate
+// Prepare deactivation of this view
+// ---------------------------------------------------------------------------
+//
+void CCamViewBase::PrepareDeactivate()
+ {
+ PRINT( _L("Camera => CCamViewBase::PrepareDeactivate" ));
+ // Both standard container and standby container should be deactivated
+ // Store them for temporal variables until new containers have been
+ // created.
+ if ( iStandbyContainer ) // implies IsInStandbyMode
+ {
+ AppUi()->RemoveFromStack( iStandbyContainer );
+ iTempStandbyContainer=iStandbyContainer;
+ iStandbyContainer = NULL;
+ SetStandbyModeActive( EFalse );
+ }
+
+ if ( iContainer )
+ {
+ iTempContainer=iContainer;
+ iContainer = NULL;
+ }
+ PRINT( _L("Camera <= CCamViewBase::PrepareDeactivate" ));
+ }
+
+
+// ---------------------------------------------------------------------------
+// CCamViewBase::PostDeactivate
+// Completed prepared deactivation of this view
+// ---------------------------------------------------------------------------
+//
+void CCamViewBase::PostDeactivate()
+ {
+ PRINT( _L("Camera => CCamViewBase::PostDeactivate" ));
+ // Both standard container and standby container should be deactivated
+ if ( iTempStandbyContainer ) // implies IsInStandbyMode
+ {
+ delete iTempStandbyContainer;
+ iTempStandbyContainer = NULL;
+ }
+
+ if ( iTempContainer )
+ {
+ delete iTempContainer;
+ iTempContainer = NULL;
+ }
+ PRINT( _L("Camera <= CCamViewBase::PostDeactivate" ));
+ }
+
+// ---------------------------------------------------------------------------
// CCamViewBase::CCamViewBase
// C++ constructor
// ---------------------------------------------------------------------------