diff -r 4d54b72983ae -r c743ef5928ba idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Tue Jan 26 11:48:23 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Tue Feb 02 00:04:13 2010 +0200 @@ -872,7 +872,6 @@ if ( next.Occupied() && !next.Active() ) { iAppUiAdapter.ViewAdapter().ActivateContainerL( next ); - UpdateWallpaperL( current, next ); } } @@ -895,7 +894,6 @@ if ( prev.Occupied() && !prev.Active() ) { iAppUiAdapter.ViewAdapter().ActivateContainerL( prev ); - UpdateWallpaperL( current, prev ); } } @@ -1083,6 +1081,9 @@ iAppUiAdapter.ViewAdapter().ActivateContainerL( next ); } + // Remove wallpaper from cache + iAppUiAdapter.ViewAdapter().BgManager().DeleteWallpaper( *view ); + retval = iHspsWrapper->RemovePluginL( view->PluginId() ); // Notify observers of view list change @@ -1137,6 +1138,9 @@ CXnViewData* view( static_cast< CXnViewData* >( views[ index ] ) ); + // Remove wallpaper from cache + iAppUiAdapter.ViewAdapter().BgManager().DeleteWallpaper( *view ); + // Remove plugin from HSPS iHspsWrapper->RemovePluginL( view->PluginId() ); @@ -1296,7 +1300,8 @@ iHspsWrapper->SetActivePluginL( aViewToActivate.PluginId() ); // Cache update is needed after view activation - UpdateCachesL(); + UpdateCachesL(); + UpdateWallpaperL( viewToDeactivate, aViewToActivate ); } else { @@ -1310,7 +1315,7 @@ NotifyViewActivatedL( aViewToActivate ); UpdatePageManagementInformationL(); -#ifdef _XN_PERFORMANCE_TEST_ + #ifdef _XN_PERFORMANCE_TEST_ RDebug::Print( _L( "CXnViewManager::NotifyContainerChangedL - end" ) ); #endif //_XN_PERFORMANCE_TEST_ } @@ -1641,7 +1646,7 @@ // void CXnViewManager::UpdateWallpaperL( CXnViewData& aCurrent, CXnViewData& aNew ) { - iEditor->BgManager().WallpaperChanged( aCurrent, aNew ); + iAppUiAdapter.ViewAdapter().BgManager().WallpaperChanged( aCurrent, aNew ); } // -----------------------------------------------------------------------------