phoneapp/phoneuiqtviewadapter/src/phonevisibilityhandler.cpp
changeset 50 377c906a8701
parent 46 bc5a64e5bc3c
child 65 2a5d4ab426d3
--- a/phoneapp/phoneuiqtviewadapter/src/phonevisibilityhandler.cpp	Tue Jul 06 14:15:47 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phonevisibilityhandler.cpp	Fri Jul 09 15:40:55 2010 +0300
@@ -117,6 +117,11 @@
 void PhoneVisibilityHandler::sendToBackground(bool homeScreenForeground)
 {
     PHONE_TRACE2(": homeScreenForeground =", homeScreenForeground);
+    PHONE_TRACE2(": m_carModeEnabled =", m_carModeEnabled);
+    if(m_carModeEnabled) {
+        // Don't bring homescreen to foreground
+        return;
+    }
     
     enableKeyGuard();
     
@@ -234,22 +239,24 @@
     } else if (m_hideDeviceDialogs) {
         PHONE_TRACE1(": Hide dialogs");
         m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront + 100);
-    
+        
     } else if (m_deviceLockEnabled) {
         // critical notes are allowed to show on top of Phone application
         PHONE_TRACE1(": Devicelock");
         m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront);
-    
+        
     } else if (BringForwards == action) {
         // Try to show phone with normal priority
         PHONE_TRACE1(": Bring forward");
         m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityNormal);
-    
+        
     } else {
         // Normalize visiblity after ie. device lock
         PHONE_TRACE1(": Normalize");
         m_eikonEnv->RootWin().SetOrdinalPosition(ordinalPos, ECoeWinPriorityNormal);
-        
+        // Flush is needed here, because otherwise launching an application may fail
+        // if done same time with normalization.
+        m_eikonEnv->WsSession().Flush();        
     }
 
     PHONE_TRACE1(": END");