widgets/widgetapp/src/WidgetUiWindowManager.cpp
changeset 11 c8a366e56285
parent 10 a359256acfc6
child 15 60c5402cb945
--- a/widgets/widgetapp/src/WidgetUiWindowManager.cpp	Thu Aug 27 07:44:59 2009 +0300
+++ b/widgets/widgetapp/src/WidgetUiWindowManager.cpp	Thu Sep 24 12:53:48 2009 +0300
@@ -120,7 +120,8 @@
     iAppUi(aAppUi),
     iStrictMode(ETrue),
     iNetworkMode(EUnknownMode),
-    iNetworkConnected(EFalse)
+    iNetworkConnected(EFalse),
+    iWidgetCursorMode(TBrCtlDefs::EDefaultCursor)
     {
     }
 
@@ -144,10 +145,15 @@
     if (!error)
         {
         TInt strictMode;
+        TInt cursorMode = -1;
         if (cenRep->Get( KWidgetInstallerStrictMode, strictMode ) == KErrNone)
             {
             iStrictMode = strictMode;
             }
+        if (cenRep->Get( KWidgetCursorShowMode, cursorMode ) == KErrNone)
+            {
+            iWidgetCursorMode = (TBrCtlDefs::TCursorSettings) cursorMode;
+            }
         delete cenRep;
         }
         
@@ -328,22 +334,35 @@
         case WidgetOnline:
             {
             iNetworkMode = EOnlineMode;
-            GetWindow( aUid )->DetermineNetworkState();
+            CWidgetUiWindow* wdgt_window( GetWindow( aUid ) );
+#ifdef BRDO_WRT_HS_FF
+            if ( wdgt_window->NetworkModeWait()->IsStarted() )
+                {
+                wdgt_window->NetworkModeWait()->AsyncStop();
+                }
+#endif
+            wdgt_window->DetermineNetworkState();
             }
             break;
        case WidgetOffline:
             {
             iNetworkMode = EOfflineMode;
+            CWidgetUiWindow* wdgt_window( GetWindow( aUid ) );
+#ifdef BRDO_WRT_HS_FF
+            if ( wdgt_window->NetworkModeWait()->IsStarted() )
+                {
+                wdgt_window->NetworkModeWait()->AsyncStop();
+                }
+#endif
             // if no full view widgets open, then close the network connection
             if ( ( !FullViewWidgetsOpen() ) && ( iConnection->Connected() ) )
                 {
-                CWidgetUiWindow* wdgt_window( GetWindow( aUid ) );
                 wdgt_window->Engine()->HandleCommandL( 
                         (TInt)TBrCtlDefs::ECommandIdBase +
                         (TInt)TBrCtlDefs::ECommandDisconnect );
                 iConnection->StopConnectionL();
                 }
-            GetWindow( aUid )->DetermineNetworkState();
+            wdgt_window->DetermineNetworkState();
             }
             break;
        case WidgetRestart:
@@ -546,8 +565,9 @@
     if ( !lastOne )
         {
         // Starting JS timer, since we stopped it for deactivating miniview widget
+        //If there is a widget on HS then the timer will not be started
         CWidgetUiWindow* window = iWindowList[iWindowList.Count() - 1];
-        if ( window)
+        if ( window && AnyWidgetPublishing())
                TRAP_IGNORE ( window->Engine()->HandleCommandL( 
                               (TInt)TBrCtlDefs::ECommandAppForeground + 
                               (TInt)TBrCtlDefs::ECommandIdBase));
@@ -1271,7 +1291,29 @@
     {
     iAppUi.SendAppToBackground();    
     }
-    
+
+TBool CWidgetUiWindowManager::AnyWidgetOnHs()
+    {
+    for ( TInt i = 0; i < iWindowList.Count(); ++i )
+        {
+        CWidgetUiWindow* window( iWindowList[i] );
+        if( window->WidgetMiniViewState() != EMiniViewEnabled && window->WidgetMiniViewState() != EMiniViewNotEnabled )
+            return ETrue;
+        }
+    return EFalse;
+    }
+
+TBool CWidgetUiWindowManager::AnyWidgetPublishing()
+    {
+    for ( TInt i = 0; i < iWindowList.Count(); ++i )
+        {
+        CWidgetUiWindow* window( iWindowList[i] );
+        if( window->WidgetMiniViewState() == EPublishStart )
+            return ETrue;
+        }
+    return EFalse;
+    }
+
 CRequestRAM::CRequestRAM(CWidgetUiWindowManager* aWidgetUiWindowManager, const TUid& aUid, TUint32 aOperation):
     CActive( EPriorityStandard ),
     iOperation(aOperation),