diff -r bf64cebf4673 -r 53c8aa5d97a3 camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp --- a/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp Tue May 11 15:56:11 2010 +0300 +++ b/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp Tue May 25 12:22:04 2010 +0300 @@ -1033,7 +1033,9 @@ PRINT( _L("Camera <> CCamPreCaptureViewBase::ExitAllModesL ##" )) ExitCaptureSetupMenuModeL(); } - if(Id() == TUid::Uid(ECamViewIdVideoPreCapture)) + if( Id() == TUid::Uid( ECamViewIdVideoPreCapture ) && + iController.UiConfigManagerPtr() && + iController.UiConfigManagerPtr()->IsXenonFlashSupported() ) { iToolbarExtensionInvisible = ETrue; } @@ -1086,14 +1088,13 @@ CAknToolbar* fixedToolbar = Toolbar(); CAknToolbarExtension* extension = fixedToolbar->ToolbarExtension(); - //Only active view will set toolbar extension visibility. - - if(this->IsForeground()) + // Only active view will set toolbar extension visibility. + if( this->IsForeground() ) { if ( extension && iToolbarExtensionInvisible == EFalse ) { extension->SetShown( ETrue ); - } + } else if( extension ) { extension->SetShown( EFalse ); @@ -1822,7 +1823,8 @@ MAknTouchGestureFwPinchEvent *pinch = AknTouchGestureFwEventPinch( aEvent ); CCamAppUi* appUi = static_cast( iEikonEnv->AppUi() ); - if ( pinch && (ECamNoOperation == iController.CurrentOperation()) && appUi && !appUi->ZoomPane()->IsVisible() ) + if ( pinch && (ECamNoOperation == iController.CurrentOperation()) && appUi + && !appUi->ZoomPane()->IsCurrentlyZooming() ) { // Determine the direction of pinch: +ve -> pinch outward / zoom / widen VF TInt currMove = pinch->Movement(); @@ -1852,26 +1854,29 @@ } } } - else if ( EAknTouchGestureFwDoubleTap == aEvent.Type() ) + else if ( EAknTouchGestureFwDoubleTap == aEvent.Type() + && ( ECamNoOperation == iController.CurrentOperation() + || ( ECamCapturing == iController.CurrentOperation() + && iController.CurrentMode() == ECamControllerVideo ) ) ) { - PRINT( _L("Camera <> *** double tap event") ); + PRINT( _L("Camera <> double tap event") ); CCamAppUi* appUi = static_cast( iEikonEnv->AppUi() ); CCamZoomPane *zoomPane = appUi->ZoomPane(); CCamPreCaptureContainerBase* container = static_cast( iContainer ); container->ShowZoomPaneWithTimer(); - // Zoom to max (if not already at max) zoom level, otherwise zoom out to min level - if ( !zoomPane->IsZoomAtMaximum() ) + // Zoom to min (if not already at min) zoom level, otherwise zoom in to max level + if ( !zoomPane->IsZoomAtMinimum() ) + { + PRINT( _L("Camera <> Zooming out to min level") ); + zoomPane->ZoomToMinimum(); + } + else { PRINT( _L("Camera <> Zooming to max level") ); zoomPane->ZoomToMaximum(); } - else - { - PRINT( _L("Camera <> Zooming out to min level") ); - zoomPane->ZoomToMinimum(); - } } else {