--- 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