uifw/EikStd/coctlsrc/eikspane.cpp
branchRCL_3
changeset 15 08e69e956a8c
parent 10 9f56a4e1b8ab
child 25 941195f2d488
--- a/uifw/EikStd/coctlsrc/eikspane.cpp	Mon Mar 15 12:41:34 2010 +0200
+++ b/uifw/EikStd/coctlsrc/eikspane.cpp	Wed Mar 31 21:59:52 2010 +0300
@@ -1177,11 +1177,14 @@
      *                              be also passed if @c aParentWindowGroup
      *                              is specified.
      * @param  aTransparent         Whether or not the control is transparent.
+     * @param  aIsFaded             Whether or not the control's window should
+     *                              be faded or not.
      */
     void SetParentWindowL( RWindowGroup* aParentWindowGroup,
                            CCoeControl* aParentControl,
                            CRedrawStoreHandler* aRedrawStoreHandler,
-                           TBool aTransparent );
+                           TBool aTransparent,
+                           TBool aIsFaded );
     
     /**
      * Sets the container control transparency.
@@ -2604,7 +2607,8 @@
     RWindowGroup* aParentWindowGroup,
     CCoeControl* aParentControl,
     CRedrawStoreHandler* aRedrawStoreHandler,
-    TBool aTransparent )
+    TBool aTransparent,
+    TBool aIsFaded )
     {
     if ( aParentWindowGroup )
         {
@@ -2613,6 +2617,9 @@
         SetMopParent( iEikonEnv->EikAppUi() );
         SetParent( NULL );
 
+        // Maintain the window's ordinal position.
+        TInt ordinalPos = Window().OrdinalPosition();
+
         if ( OwnsWindow() )
             {
             CloseWindow();
@@ -2644,6 +2651,9 @@
         EnableDragEvents();
 
         SetContainersL( *iControl, *this );
+
+        window.SetFaded( aIsFaded, RWindowTreeNode::EFadeIncludeChildren );
+        window.SetOrdinalPosition( ordinalPos );
         
         ActivateL();
         }
@@ -3786,6 +3796,8 @@
         // component controls.
         TInt count( combinedPaneControl->CountComponentControls() );
 
+        TBool isFaded( IsFaded() );
+
         for ( TInt i = 0; i < count; ++i )
             {
             CEikStatusPaneContainer* subPane =
@@ -3798,7 +3810,9 @@
                     subPane->SetParentWindowL( NULL,
                                                combinedPaneControl,
                                                NULL,
-                                               transparencyEnabled );
+                                               transparencyEnabled,
+                                               isFaded );
+
                     // Background is drawn by the combined pane so remove
                     // the subpane's own background drawer. 
                     subPane->SetBackground( NULL );
@@ -3809,7 +3823,8 @@
                         iParentWindowGroup,
                         NULL,
                         iExtension ? iExtension->iRedrawStoreHandler : NULL,
-                        transparencyEnabled );
+                        transparencyEnabled,
+                        isFaded );
 
                     subPane->SetBackground( transparencyEnabled ? NULL :
                                                                   iExtension );