phoneapp/phoneuiqtviewadapter/src/phonevisibilityhandler.cpp
changeset 56 5bcb308bd24d
parent 46 bc5a64e5bc3c
child 65 2a5d4ab426d3
equal deleted inserted replaced
46:bc5a64e5bc3c 56:5bcb308bd24d
   115     PhoneVisibilityHandler::sendToBackground.
   115     PhoneVisibilityHandler::sendToBackground.
   116  */
   116  */
   117 void PhoneVisibilityHandler::sendToBackground(bool homeScreenForeground)
   117 void PhoneVisibilityHandler::sendToBackground(bool homeScreenForeground)
   118 {
   118 {
   119     PHONE_TRACE2(": homeScreenForeground =", homeScreenForeground);
   119     PHONE_TRACE2(": homeScreenForeground =", homeScreenForeground);
       
   120     PHONE_TRACE2(": m_carModeEnabled =", m_carModeEnabled);
       
   121     if(m_carModeEnabled) {
       
   122         // Don't bring homescreen to foreground
       
   123         return;
       
   124     }
   120     
   125     
   121     enableKeyGuard();
   126     enableKeyGuard();
   122     
   127     
   123     // Send phone back on WSERV stack
   128     // Send phone back on WSERV stack
   124     adjustVisibility(SendToBack);
   129     adjustVisibility(SendToBack);
   232         PHONE_TRACE1(": Skip");
   237         PHONE_TRACE1(": Skip");
   233         
   238         
   234     } else if (m_hideDeviceDialogs) {
   239     } else if (m_hideDeviceDialogs) {
   235         PHONE_TRACE1(": Hide dialogs");
   240         PHONE_TRACE1(": Hide dialogs");
   236         m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront + 100);
   241         m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront + 100);
   237     
   242         
   238     } else if (m_deviceLockEnabled) {
   243     } else if (m_deviceLockEnabled) {
   239         // critical notes are allowed to show on top of Phone application
   244         // critical notes are allowed to show on top of Phone application
   240         PHONE_TRACE1(": Devicelock");
   245         PHONE_TRACE1(": Devicelock");
   241         m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront);
   246         m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront);
   242     
   247         
   243     } else if (BringForwards == action) {
   248     } else if (BringForwards == action) {
   244         // Try to show phone with normal priority
   249         // Try to show phone with normal priority
   245         PHONE_TRACE1(": Bring forward");
   250         PHONE_TRACE1(": Bring forward");
   246         m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityNormal);
   251         m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityNormal);
   247     
   252         
   248     } else {
   253     } else {
   249         // Normalize visiblity after ie. device lock
   254         // Normalize visiblity after ie. device lock
   250         PHONE_TRACE1(": Normalize");
   255         PHONE_TRACE1(": Normalize");
   251         m_eikonEnv->RootWin().SetOrdinalPosition(ordinalPos, ECoeWinPriorityNormal);
   256         m_eikonEnv->RootWin().SetOrdinalPosition(ordinalPos, ECoeWinPriorityNormal);
   252         
   257         // Flush is needed here, because otherwise launching an application may fail
       
   258         // if done same time with normalization.
       
   259         m_eikonEnv->WsSession().Flush();        
   253     }
   260     }
   254 
   261 
   255     PHONE_TRACE1(": END");
   262     PHONE_TRACE1(": END");
   256 }
   263 }
   257 
   264