diff -r 1b758917cafc -r d721605b30d0 idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Wed Jun 09 09:29:04 2010 +0300 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Mon Jun 21 15:27:11 2010 +0300 @@ -352,8 +352,8 @@ CleanupStack::PopAndDestroy(); // DisableRenderUiLC(); - // Load initial view publishers - ActiveViewData().LoadPublishers( EAiFwSystemStartup ); + // Load initial view publishers + ActiveViewData().SetActive( ETrue ); } // ----------------------------------------------------------------------------- @@ -378,6 +378,16 @@ delete iWidgetAmountTrigger; iWidgetAmountTrigger = NULL; + // Destroy all publishers + RPointerArray< CXnPluginData >& views( iRootData->PluginData() ); + + for ( TInt i = 0; i < views.Count(); i++ ) + { + CXnViewData* view = static_cast< CXnViewData* >( views[i] ); + + view->DestroyPublishers( EAiFwSystemShutdown ); + } + // Destroy active view data ActiveViewData().Destroy(); @@ -387,6 +397,8 @@ User::Heap().Compress(); + iUiReady = EFalse; + LoadUiL(); // Activate first view from the new configuration @@ -1405,6 +1417,19 @@ } // ----------------------------------------------------------------------------- +// CXnViewManager::NotifyAllViewsLoadedL() +// Notifies that all views included in root configuration are loaded +// ----------------------------------------------------------------------------- +// +void CXnViewManager::NotifyAllViewsLoadedL() + { + for ( TInt i = 0; i < iObservers.Count(); i++ ) + { + iObservers[i]->NotifyAllViewsLoadedL(); + } + } + +// ----------------------------------------------------------------------------- // CXnViewManager::PublishersReadyL() // Notifies that aViewData activation is complete // ----------------------------------------------------------------------------- @@ -1456,6 +1481,8 @@ CXnBackgroundManager& bg( self->iAppUiAdapter.ViewAdapter().BgManager() ); TRAP_IGNORE( bg.StoreWallpaperL() ); + + self->NotifyContainerActivatedL( active ); return KErrNone; } @@ -1564,6 +1591,19 @@ } // ----------------------------------------------------------------------------- +// CXnViewManager::NotifyContainerActivatedL() +// Notifies view container is activated +// ----------------------------------------------------------------------------- +// +void CXnViewManager::NotifyContainerActivatedL( const CXnViewData& aViewData ) + { + for ( TInt i = 0; i < iObservers.Count(); i++ ) + { + iObservers[i]->NotifyContainerActivatedL( aViewData ); + } + } + +// ----------------------------------------------------------------------------- // CXnViewManager::UpdateCachesL() // // -----------------------------------------------------------------------------