uifw/AvKon/src/AknSettingPage.cpp
branchRCL_3
changeset 4 8ca85d2f0db7
parent 0 2f259fa3e83a
child 9 aabf2c525e0f
--- 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