diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp --- a/camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -160,6 +160,7 @@ } else if ( iInfoListBoxActive ) { + iController.CancelPreviewChangesL(); ExitAllModesL(); break; } @@ -684,6 +685,7 @@ appUi->SetToolbarVisibility(); + iForceAvkonCBA = ETrue; UpdateCbaL(); SetTitlePaneTextL(); appUi->PushDefaultNaviPaneL(); @@ -843,11 +845,11 @@ // void CCamCaptureSetupViewBase::ExitSceneSettingModeL() { - PRINT( _L( "Camera => CCamCaptureSetupViewBase::ExitSceneSettingModeL" ) ); - + PRINT( _L( "Camera => CCamCaptureSetupViewBase::ExitSceneSettingModeL" ) ); + iForceAvkonCBA = EFalse; if ( !iSceneSettingModeActive ) - { - AppUi()->RemoveFromStack( iSceneSettingContainer ); + { + AppUi()->RemoveFromStack( iSceneSettingContainer ); if ( iSceneSettingContainer ) { @@ -919,6 +921,7 @@ // Cleanup the view correctly if a leave occurs CleanupStack::PushL( TCleanupItem( CleanupExit, this ) ); AppUi()->AddToStackL( *this, iContainer ); + iController.SetViewfinderWindowHandle( &iContainer->Window() ); PRINT( _L( "Camera => CCamCaptureSetupViewBase::ExitInfoListBoxL removing iInfoListBoxContainer" ) ); AppUi()->RemoveFromStack( iInfoListBoxContainer ); delete iInfoListBoxContainer;