camerauis/cameraapp/generic/src/CamAppController.cpp
branchRCL_3
changeset 35 e32fcfe0045f
parent 31 8f559c47d7fd
child 49 289bbfdb6627
--- a/camerauis/cameraapp/generic/src/CamAppController.cpp	Wed Jun 09 09:21:41 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamAppController.cpp	Mon Jun 21 15:19:37 2010 +0300
@@ -3094,6 +3094,7 @@
   iNoBurstCancel = EFalse;
   iKeyUP = EFalse;
   iAFCancelInProgress = EFalse;
+  iTouchCapture = EFalse;
 
   // -------------------------------------------------------
   if( ECamTriIdle != iCameraController->ViewfinderState() )
@@ -9035,9 +9036,21 @@
         TRAP( aStatus, RestoreSettingsToCameraL() );  
         }
       // fixed toolbar is used only with touch devices
-      if ( IsTouchScreenSupported() )
+      if ( IsTouchScreenSupported() && appUi )
           {
-          appUi->SetToolbarVisibility();// avoid flickering in settings view
+          CAknToolbar* toolbar = appUi->CurrentFixedToolbar();
+          if ( toolbar )
+              {
+              CAknToolbarExtension* toolbarextension = toolbar->ToolbarExtension();
+              if ( toolbarextension && toolbarextension->IsShown() )
+                  {
+                  appUi->SetToolbarVisibility();// avoid flickering in settings view
+                  }
+              else
+                  {
+                  appUi->SubmergeToolbar();
+                  }
+              }
           PRINT( _L( "Camera <> SetToolbarVisibility done ") );
           }
       // else use AP    
@@ -9137,6 +9150,15 @@
         OstTrace0( CAMERAAPP_PERFORMANCE, DUP5_CCAMAPPCONTROLLER_HANDLECAMERAEVENTL, "e_CAM_APP_CAPTURE_START 1" );
         OstTrace0( CAMERAAPP_PERFORMANCE, DUP6_CCAMAPPCONTROLLER_HANDLECAMERAEVENTL, "e_CAM_PRI_SERIAL_SHOOTING 1" );
         
+        // When image capture is started with touch capture button, a short
+        // delay is added after AF completes, but before capturing starts to 
+        // avoid blurry screen sometimes when VF is frozen and before the 
+        // snapshot is drawn. Delay also helps to see focus reticule. 
+        if( iTouchCapture )
+            {
+            User::After( 50000 );
+            iTouchCapture = EFalse;
+            }
         Capture();  
         }           
       break;  
@@ -11580,6 +11602,15 @@
     {
     return iSceneModeForcedBySecondaryCamera;
     }
-	
+
+// ---------------------------------------------------------------------------
+// CCamAppController::SetTouchCapture
+// 
+// ---------------------------------------------------------------------------
+//
+void CCamAppController::SetTouchCapture( TBool aTouchCapture )
+    {
+    iTouchCapture = aTouchCapture;
+    }
 //  End of File