diff -r cb62a4f66ebe -r 6297cdf66332 widgets/widgetapp/src/WidgetUiWindowManager.cpp --- 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; + } // =============================================================================