diff -r 4d54b72983ae -r c743ef5928ba idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp --- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Tue Jan 26 11:48:23 2010 +0200 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Tue Feb 02 00:04:13 2010 +0200 @@ -38,6 +38,8 @@ #include "xntype.h" #include "xnbgcontrol.h" #include "xnfocuscontrol.h" +#include "xneditor.h" +#include "xnbackgroundmanager.h" #include "xnviewadapter.h" #include "xnmenu.h" @@ -158,6 +160,7 @@ delete iDeactivate; delete iEditState; delete iBgControl; + delete iBgManager; delete iFocusControl; } @@ -190,6 +193,9 @@ iBgControl = CXnBgControl::NewL(); iBgControl->SetMopParent( this ); + iBgManager = CXnBackgroundManager::NewL( iAppUiAdapter.ViewManager(), + iAppUiAdapter.ViewManager().Editor().HspsWrapper() ); + iFocusControl = CXnFocusControl::NewL( iAppUiAdapter ); iEventDispatcher = @@ -241,6 +247,7 @@ void CXnViewAdapter::PrepareDestroy() { iAppUiAdapter.UiStateListener().RemoveObserver( *this ); + iBgControl->PrepareDestroy(); TRAP_IGNORE( DeactivateContainerL() ); @@ -274,6 +281,16 @@ } // ----------------------------------------------------------------------------- +// CXnViewAdapter::BgManager +// Returns background manager. +// ----------------------------------------------------------------------------- +// +CXnBackgroundManager& CXnViewAdapter::BgManager() const + { + return *iBgManager; + } + +// ----------------------------------------------------------------------------- // CXnViewAdapter::BgControl // Returns focus control. // ----------------------------------------------------------------------------- @@ -323,6 +340,7 @@ } iBgControl->MakeVisible( ETrue ); + iBgManager->MakeVisible( ETrue ); // Set the active container ActivateContainerL( iAppUiAdapter.ViewManager().ActiveViewData() ); @@ -345,6 +363,8 @@ TRAP_IGNORE( DeactivateContainerL() ); iBgControl->MakeVisible( EFalse ); + iBgManager->MakeVisible( EFalse ); + iFocusControl->MakeVisible( EFalse ); iFlags.Clear( EIsActivated ); @@ -480,7 +500,7 @@ CXnEditMode* editMode = iAppUiAdapter.UiEngine().EditMode(); if( editMode ) { - editMode->StopDraggingL(); + TRAP_IGNORE( editMode->StopDraggingL() ); } iFocusControl->MakeVisible( EFalse );