widgets/widgetapp/src/WidgetUiWindowManager.cpp
changeset 27 6297cdf66332
parent 26 cb62a4f66ebe
child 28 d39add9822e2
--- a/widgets/widgetapp/src/WidgetUiWindowManager.cpp	Thu Jan 07 13:31:38 2010 +0200
+++ b/widgets/widgetapp/src/WidgetUiWindowManager.cpp	Mon Jan 18 21:20:18 2010 +0200
@@ -620,6 +620,7 @@
 TBool CWidgetUiWindowManager::RemoveFromWindowList( CWidgetUiWindow* aWidgetWindow )
     {
     __ASSERT_DEBUG( aWidgetWindow, User::Invariant() );
+    TBool count(EFalse);
     if ( iDialogsProvider->IsDialogLaunched() )
         {
         return EFalse;
@@ -661,9 +662,27 @@
     else
         {
         if(aWidgetWindow->CanBeDeleted())
+            {
+            for ( TInt i = 0; i < iWindowList.Count(); ++i )
+                {
+                CWidgetUiWindow* window( iWindowList[i] );
+                if(window->WidgetMiniViewState() == EMiniViewEnabled || window->WidgetMiniViewState() == EMiniViewNotEnabled)
+                    {
+                    count = ETrue;
+                    break;
+                    }
+                }         
+            if(!count && iNetworkMode == EOfflineMode){
+                aWidgetWindow->Engine()->HandleCommandL( 
+                (TInt)TBrCtlDefs::ECommandIdBase +
+                                (TInt)TBrCtlDefs::ECommandDisconnect );
+                iConnection->StopConnectionL();
+                }             
             delete aWidgetWindow;
+            }
+        return EFalse; 
         }
-    return EFalse;
+    
     }
 
 // =============================================================================