diff -r 2f259fa3e83a -r 8ca85d2f0db7 uifw/AvKon/src/AknSettingPage.cpp --- a/uifw/AvKon/src/AknSettingPage.cpp Tue Feb 02 01:00:49 2010 +0200 +++ b/uifw/AvKon/src/AknSettingPage.cpp Fri Feb 19 23:04:46 2010 +0200 @@ -571,6 +571,10 @@ { AKNTASHOOK_REMOVE(); + StopActiveScheduler(); + + // If navi pane context is not poped out yet, pop it now. + PopNaviDecoratorIfRequired(); if ( GfxTransEffect::IsRegistered( this ) ) { GfxTransEffect::Deregister( this ); @@ -593,12 +597,9 @@ delete iHintText; delete iCba; delete iExtension; + iExtension = NULL; - // If navi pane context is not poped out yet, pop it now. - PopNaviDecoratorIfRequired(); delete iNaviDecorator; - - StopActiveScheduler(); } void CAknSettingPage::StopActiveScheduler() @@ -778,9 +779,6 @@ { CreateWindowL(); - SetGloballyCapturing( ETrue ); - SetPointerCapture(ETrue); - if( NULL == iExtension ) { iExtension = CAknSettingPageExtension::NewL( this ); @@ -894,6 +892,12 @@ } } + if(iExtension->iEmbeddedSoftkeys) + { + SetGloballyCapturing( ETrue ); + SetPointerCapture(ETrue); + } + AknItemActionMenuRegister::SetOverridingMenuBarOwnerL( this ); if ( !iExtension->iEmbeddedSoftkeys ) @@ -2088,6 +2092,10 @@ { return SupplyMopObject( aId, iExtension->iEditIndicator ); } + else if( aId.iUid == MAknsControlContext::ETypeId) + { + return MAknsControlContext::SupplyMopObject(aId, iExtension->iSettingPageBgContext); + } return SupplyMopObject( aId, iCba, iMenuBar ); } @@ -2151,7 +2159,7 @@ void CAknSettingPage::PopNaviDecoratorIfRequired() { - if ( iNaviPane && !iExtension->iEmbeddedSoftkeys ) + if ( iNaviPane && iExtension && !iExtension->iEmbeddedSoftkeys ) { iNaviPane->Pop( iNaviDecorator ); // iNaviDecorator is not to be detroyed yet