uifw/EikStd/dlgsrc/EIKDIALG.CPP
branchRCL_3
changeset 29 a8834a2e9a96
parent 25 941195f2d488
child 38 c52421ed5f07
--- a/uifw/EikStd/dlgsrc/EIKDIALG.CPP	Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKDIALG.CPP	Wed Jun 09 09:58:37 2010 +0300
@@ -300,9 +300,9 @@
     // assume that dialog didn't properly call CEikDialog::SizeChanged thus 
     // embedded softkeys won't work.
     // In that case softkeys are deleted and re-created as a window-owning
-    // component in "legacy" way.    
-    if ( checkCba && extension->iDeleteEmbeddedCba 
-	        && extension->iButtonGroupResourceId != 0 )
+    // component in "legacy" way.
+    if (checkCba && extension->iButtonGroupResourceId != 0 &&
+        (extension->iDeleteEmbeddedCba || Size().iWidth <= 0))
         {
         delete iButtonGroupContainer;
         iButtonGroupContainer = NULL;
@@ -1656,15 +1656,23 @@
 #endif
 		GfxTransEffect::Begin(this, KGfxControlAppearAction);
         MTouchFeedback* feedback = NULL;
-		if(AknLayoutUtils::PenEnabled())
-		    {
-            feedback = static_cast<MTouchFeedback*>(ExtensionInterface(KExIfTactileFeedbackUid));
-		    }
-		if(feedback && CAknTransitionUtils::TransitionsEnabled(AknTransEffect::EComponentTransitionsOff ))
-		    {
-            feedback->InstantFeedback(this, ETouchFeedbackIncreasingPopUp,
-                                        ETouchFeedbackVibra, TPointerEvent());
-		    }
+        if( AknLayoutUtils::PenEnabled() )
+            {
+            feedback = static_cast<MTouchFeedback*>( ExtensionInterface( KExIfTactileFeedbackUid ) );
+            }
+        if( feedback )
+            {
+            if( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+                {
+                feedback->InstantFeedback( this, ETouchFeedbackIncreasingPopUp,
+                                            ETouchFeedbackVibra, TPointerEvent() );
+                }
+            else
+                {
+                feedback->InstantFeedback( this, ETouchFeedbackPopUp,
+                                            ETouchFeedbackVibra, TPointerEvent() );
+                }
+            }
 		GfxTransEffect::NotifyExternalState(ECaptureComponentsBegin, (const TDesC8*)this);
 		
 		TRect demarcation;
@@ -1677,11 +1685,6 @@
 
 		GfxTransEffect::NotifyExternalState(ECaptureComponentsEnd, (const TDesC8*)this);
 		GfxTransEffect::End(this);
-		if(feedback)
-		    {
-            feedback->InstantFeedback(this, ETouchFeedbackPopUp,
-                                        ETouchFeedbackVibra, TPointerEvent());
-		    }
 		}
 	else
 		{
@@ -2432,7 +2435,13 @@
         else if (iExtension)
         	iExtension->iFlags.Set(CEikDialogExtension::ELayoutChangeWhileInvisible);
 
-        CCoeControl::HandleResourceChange(aType);
+        TBool isForm = ( iPageSelector && iPageSelector->IsForm() );
+
+        if ( !isForm )
+            {
+            CCoeControl::HandleResourceChange( aType );
+            }
+
         _AKNTRACE_FUNC_EXIT;
         return;
         }
@@ -2454,16 +2463,22 @@
     // Must work through all pages
 	_AKNTRACE_FUNC_ENTER;
     Layout();
-    SizeChanged();
+    
+    TBool isForm = ( iPageSelector && iPageSelector->IsForm() );
+    
+    if ( !isForm )
+        {
+        SizeChanged();
     
-    TInt lastPage =  ( iPageSelector->PageContainer()->NumPages() - 1 );
-    TInt pageIndex = 0;
-    CEikDialogPage* page;
-
-    while ( pageIndex++ <= lastPage )
-        {
-        page = iPageSelector->PageContainer()->Page( pageIndex );
-        page->HandleResourceChange( KEikDynamicLayoutVariantSwitch );
+        TInt lastPage =  ( iPageSelector->PageContainer()->NumPages() - 1 );
+        TInt pageIndex = 0;
+        CEikDialogPage* page;
+    
+        while ( pageIndex++ <= lastPage )
+            {
+            page = iPageSelector->PageContainer()->Page( pageIndex );
+            page->HandleResourceChange( KEikDynamicLayoutVariantSwitch );
+            }
         }
 
    	if (iExtension)