Revision: 201009 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 15 Mar 2010 12:41:34 +0200
branchRCL_3
changeset 10 9f56a4e1b8ab
parent 9 aabf2c525e0f
child 15 08e69e956a8c
Revision: 201009 Kit: 201010
classicui_plat/avkon_settings_api/inc/AvkonInternalCRKeys.h
classicui_plat/extended_editors_api/inc/aknedwincustomdrawbase.h
classicui_plat/ganes_api/inc/ganes/HgDoubleGraphicList.h
classicui_plat/ganes_api/inc/ganes/HgDoubleTextList.h
classicui_plat/ganes_api/inc/ganes/HgGrid.h
classicui_plat/ganes_api/inc/ganes/HgScroller.h
classicui_plat/ganes_api/inc/ganes/HgSingleGraphicList.h
classicui_plat/ganes_api/inc/ganes/HgSingleLargeList.h
classicui_plat/ganes_api/inc/ganes/HgSingleTextList.h
classicui_plat/ganes_api/inc/ganes/HgSingleTextListWithIcon.h
classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h
classicui_pub/common_file_dialogs_api/inc/caknmemoryselectionsettingitemmultidrive.h
classicui_pub/editors_api/inc/EIKEDWIN.H
classicui_pub/editors_api/inc/EikCcpu.h
classicui_pub/indicators_api/inc/AknIndicatorContainer.h
classicui_pub/ui_framework_definitions_api/inc/avkon.hrh
classicui_pub/ui_framework_utilities_api/inc/AknUtils.h
commonuis/CommonDialogs/BWINS/COMMONDIALOGSU.DEF
commonuis/CommonDialogs/EABI/COMMONDIALOGSU.DEF
commonuis/CommonDialogs/src/CAknFileSelectionEventHandler.cpp
commonuis/CommonDialogs/src/caknmemoryselectiondialogmultidrive.cpp
commonuis/CommonDialogs/src/caknmemoryselectionsettingitemmultidrive.cpp
commonuis/CommonUi/src/DocumentHandler.cpp
commonuis/CommonUi/src/FindItemDialog.cpp
commonuisupport/uikon/srvsrc/EIKNFYSV.CPP
lafagnosticuifoundation/cone/inc/COECNTRL.H
lafagnosticuifoundation/cone/inc/CoeDynamicStorage.inl
lafagnosticuifoundation/cone/src/COECNTRL.CPP
lafagnosticuifoundation/cone/tef/TCONE2STEP.CPP
lafagnosticuifoundation/cone/tef/TCone2Step.h
uifw/AknGlobalUI/AknCapServer/src/AknMemoryCardDialogImpl.cpp
uifw/AknGlobalUI/NotifierWrapper/src/AknNotiferAppServerApplication.cpp
uifw/AknGlobalUI/OldStyleNotif/Inc/AknNotifyPlugin.h
uifw/AknGlobalUI/OldStyleNotif/Inc/AknSoftNotificationPlugin.h
uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListMsgPopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/aknkeylocknotifier.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemconfirmationpopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemmsgpopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemprogresspopup.cpp
uifw/AvKon/Avkon2MifHeader/mifheader.cdl.custom.h
uifw/AvKon/EABI/AVKONU.DEF
uifw/AvKon/aknhlist/inc/akntreelistview.h
uifw/AvKon/aknhlist/inc/akntreenode.h
uifw/AvKon/aknhlist/src/akntreelist.cpp
uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp
uifw/AvKon/aknhlist/src/akntreelistview.cpp
uifw/AvKon/aknhlist/src/akntreenode.cpp
uifw/AvKon/bwins/AVKONU.def
uifw/AvKon/conf/s60/avkon.confml
uifw/AvKon/conf/s60/avkon_101F876E.crml
uifw/AvKon/group/avkon.mmp
uifw/AvKon/inc/AknAdaptiveSearchGrid.h
uifw/AvKon/inc/AknPreviewPopUp.h
uifw/AvKon/inc/AknSignalIcon.h
uifw/AvKon/notifsrc/AknSDData.cpp
uifw/AvKon/notifsrc/aknNotify.mmp
uifw/AvKon/src/AknAdaptiveSearch.cpp
uifw/AvKon/src/AknAdaptiveSearchGrid.cpp
uifw/AvKon/src/AknAppUi.cpp
uifw/AvKon/src/AknCharMap.cpp
uifw/AvKon/src/AknForm.cpp
uifw/AvKon/src/AknIndicatorContainer.cpp
uifw/AvKon/src/AknPopupSettingPage.cpp
uifw/AvKon/src/AknPreviewPopUp.cpp
uifw/AvKon/src/AknSignalIcon.cpp
uifw/AvKon/src/AknSmileyModel.cpp
uifw/AvKon/src/AknTextSettingPage.cpp
uifw/AvKon/src/aknbattery.cpp
uifw/AvKon/src/aknchoicelist.cpp
uifw/AvKon/src/akncolourselectiongrid.cpp
uifw/AvKon/src/aknindicator.cpp
uifw/AvKon/src/akninfrm.cpp
uifw/AvKon/src/aknlistquerydialog.cpp
uifw/AvKon/src/aknlists.cpp
uifw/AvKon/src/aknnavi.cpp
uifw/AvKon/src/aknsignal.cpp
uifw/AvKon/src/akntitle.cpp
uifw/AvKon/src/aknutils.cpp
uifw/AvKon/src/eikfrlb.cpp
uifw/AvKon/src/eikfrlbd.cpp
uifw/AvKon/src/transitionmanager.cpp
uifw/AvKon/srcdata/avkon.rss
uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicator.h
uifw/EikStd/coctlinc/aknitemactionmenuregister.h
uifw/EikStd/coctlinc/smileydrawer.h
uifw/EikStd/coctlinc/smileymanager.h
uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp
uifw/EikStd/coctlsrc/AknToolbar.cpp
uifw/EikStd/coctlsrc/EIKCOLIB.CPP
uifw/EikStd/coctlsrc/EIKEDWIN.CPP
uifw/EikStd/coctlsrc/EIKLBX.CPP
uifw/EikStd/coctlsrc/EIKMENUP.CPP
uifw/EikStd/coctlsrc/EikCcpu.cpp
uifw/EikStd/coctlsrc/aknedwincustomdrawbase.cpp
uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp
uifw/EikStd/coctlsrc/aknitemactionmenu.cpp
uifw/EikStd/coctlsrc/aknitemactionmenudata.cpp
uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp
uifw/EikStd/coctlsrc/aknitemactionmenuregisterarray.cpp
uifw/EikStd/coctlsrc/aknstyluspopupmenucontent.cpp
uifw/EikStd/coctlsrc/eikcba.cpp
uifw/EikStd/coctlsrc/eikspane.cpp
uifw/EikStd/coctlsrc/smileydrawer.cpp
uifw/EikStd/coctlsrc/smileymanager.cpp
uifw/EikStd/dlgsrc/AknMediatorFacade.cpp
uifw/EikStd/dlgsrc/EIKCAPC.CPP
uifw/EikStd/dlgsrc/EIKDIALG.CPP
uifw/eikctl/src/EIKCLBD.CPP
uifw/ganes/inc/HgVgButton.h
uifw/ganes/inc/HgVgConstants.h
uifw/ganes/inc/HgVgEGL.h
uifw/ganes/inc/HgVgHelper.h
uifw/ganes/inc/HgVgLabel.h
uifw/ganes/inc/HgVgLetterPopup.h
uifw/ganes/inc/HgVgMediaWallRenderer.h
uifw/ganes/inc/HgVgScrollBar.h
uifw/ganes/inc/HgVgSkinRenderer.h
uifw/ganes/src/HgDoubleGraphicList.cpp
uifw/ganes/src/HgDoubleTextList.cpp
uifw/ganes/src/HgGrid.cpp
uifw/ganes/src/HgList.cpp
uifw/ganes/src/HgScroller.cpp
uifw/ganes/src/HgSingleGraphicList.cpp
uifw/ganes/src/HgSingleLargeList.cpp
uifw/ganes/src/HgSingleTextList.cpp
uifw/ganes/src/HgSingleTextListWithIcon.cpp
uifw/ganes/src/HgVgButton.cpp
uifw/ganes/src/HgVgEGL.cpp
uifw/ganes/src/HgVgHelper.cpp
uifw/ganes/src/HgVgLabel.cpp
uifw/ganes/src/HgVgLetterPopup.cpp
uifw/ganes/src/HgVgMediaWall.cpp
uifw/ganes/src/HgVgMediaWallRenderer.cpp
uifw/ganes/src/HgVgScrollBar.cpp
uifw/ganes/src/HgVgSkinRenderer.cpp
--- a/classicui_plat/avkon_settings_api/inc/AvkonInternalCRKeys.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/avkon_settings_api/inc/AvkonInternalCRKeys.h	Mon Mar 15 12:41:34 2010 +0200
@@ -299,6 +299,18 @@
 */
 const TUint32 KAknServiceCallNumber = 0x00000018;
 
+/**
+ * Value indicates the feature replacing 3.5G icon with 3G icon, 
+ * required by ATT, is enabled.
+ *
+ * Possible values are:
+ *
+ * 0: 3.5G signal icon is replaced by 3G signal icon while in hsdpa network.
+ * 1: 3.5G signal icon is used in hsdpa network.
+ *
+ */
+const TUint32 KAknATTSignalIconEnable = 0x00000019;
+
 const TUid KCRUidLeaveAppsInMemory = { 0x102858F2 };
 
 /**
--- a/classicui_plat/extended_editors_api/inc/aknedwincustomdrawbase.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/extended_editors_api/inc/aknedwincustomdrawbase.h	Mon Mar 15 12:41:34 2010 +0200
@@ -25,6 +25,7 @@
 
 class CTextView;
 class CTextLayout;
+class MAknsSkinInstance;
 
 #include <lafmain.h>
 #include <AknPictographDrawerInterface.h>
@@ -192,6 +193,7 @@
     CWindowGc* iSysGc;
     CAknPictographInterface* iPictographDrawer; // owned
     TInt iWsBufferRequestId;
+    MAknsSkinInstance* iSkinInstance;
 	};
 
 #endif
--- a/classicui_plat/ganes_api/inc/ganes/HgDoubleGraphicList.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/ganes_api/inc/ganes/HgDoubleGraphicList.h	Mon Mar 15 12:41:34 2010 +0200
@@ -62,6 +62,7 @@
     
 protected: // CHgScroller
     void HandleSizeChanged();
+    void HandleScrollbarVisibilityChange(TBool aVisible);
     
 protected: // CHgList
     void DrawItem(TInt aIndex, const TRect& aRect) const; 
--- a/classicui_plat/ganes_api/inc/ganes/HgDoubleTextList.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/ganes_api/inc/ganes/HgDoubleTextList.h	Mon Mar 15 12:41:34 2010 +0200
@@ -53,6 +53,7 @@
     
 protected: // CHgScroller
     void HandleSizeChanged();
+    void HandleScrollbarVisibilityChange(TBool aVisible);
     
 protected: // CHgList
     void DrawItem(TInt aIndex, const TRect& aRect) const; 
--- a/classicui_plat/ganes_api/inc/ganes/HgGrid.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/ganes_api/inc/ganes/HgGrid.h	Mon Mar 15 12:41:34 2010 +0200
@@ -77,6 +77,7 @@
     void FitTopItemToView( TInt aIndex );
     TInt CurrentIndex();
     TBool IsDisplayed( TInt aIndex );
+    void HandleScrollbarVisibilityChange(TBool aVisible);
     
 private: // Constructors
     CHgGrid( TInt aItemCount, 
--- a/classicui_plat/ganes_api/inc/ganes/HgScroller.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/ganes_api/inc/ganes/HgScroller.h	Mon Mar 15 12:41:34 2010 +0200
@@ -348,6 +348,7 @@
     virtual TInt CurrentIndex() = 0;
     virtual TBool IsDisplayed( TInt aIndex ) = 0;
     virtual void FitTopItemToView( TInt aIndex ) = 0;
+    virtual void HandleScrollbarVisibilityChange(TBool aVisible) = 0;
     
 protected: // Constructors
     CHgScroller( TInt aItemCount, 
--- a/classicui_plat/ganes_api/inc/ganes/HgSingleGraphicList.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/ganes_api/inc/ganes/HgSingleGraphicList.h	Mon Mar 15 12:41:34 2010 +0200
@@ -53,6 +53,7 @@
 
 protected: // CHgScroller
     void HandleSizeChanged();
+    void HandleScrollbarVisibilityChange(TBool aVisible);
 
 protected: // CHgList
     void DrawItem(TInt aIndex, const TRect& aRect) const; 
--- a/classicui_plat/ganes_api/inc/ganes/HgSingleLargeList.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/ganes_api/inc/ganes/HgSingleLargeList.h	Mon Mar 15 12:41:34 2010 +0200
@@ -53,6 +53,7 @@
 
 protected: // CHgScroller
     void HandleSizeChanged();
+    void HandleScrollbarVisibilityChange(TBool aVisible);
 
 protected: // CHgList
     void DrawItem(TInt aIndex, const TRect& aRect) const; 
--- a/classicui_plat/ganes_api/inc/ganes/HgSingleTextList.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/ganes_api/inc/ganes/HgSingleTextList.h	Mon Mar 15 12:41:34 2010 +0200
@@ -47,8 +47,8 @@
     IMPORT_C virtual ~CHgSingleTextList( );
 
 protected: // CHgScroller
-
     void HandleSizeChanged();
+    void HandleScrollbarVisibilityChange(TBool aVisible);
     
 protected: // CHgList
 
--- a/classicui_plat/ganes_api/inc/ganes/HgSingleTextListWithIcon.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/ganes_api/inc/ganes/HgSingleTextListWithIcon.h	Mon Mar 15 12:41:34 2010 +0200
@@ -47,8 +47,8 @@
     IMPORT_C virtual ~CHgSingleTextListWithIcon( );
 
 protected: // CHgScroller
-
     void HandleSizeChanged();
+    void HandleScrollbarVisibilityChange(TBool aVisible);
     
 protected: // CHgList
 
--- a/classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h	Mon Mar 15 12:41:34 2010 +0200
@@ -666,8 +666,16 @@
      */
     void InitPopupL(TInt aLayoutVariant);
     
+    /**
+     * 
+     */
     static TInt DelayedInit( TAny* aSelf);
     
+    /**
+     * 
+     */
+    void FillSystemGcWithSkin( ) const;
+
 protected:
     CHgScrollBufferManager* iManager; // Own
     
@@ -780,6 +788,15 @@
     
     CFbsBitmap* iSurfaceBitmap;
     CPeriodic* iDelayedInit;
+
+    
+    TBool iFirstTime;
+
+    TReal iSpringDragVel;
+    TReal iSpringVelAtDragStart;
+    TInt iDragFrames;
+    TBool iObserverNotified;
+
     };
 
        
--- a/classicui_pub/common_file_dialogs_api/inc/caknmemoryselectionsettingitemmultidrive.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_pub/common_file_dialogs_api/inc/caknmemoryselectionsettingitemmultidrive.h	Mon Mar 15 12:41:34 2010 +0200
@@ -88,6 +88,16 @@
      */
     void UpdateSettingItemContentL();
     
+    /**
+     * Set which medias are included in the dialog.
+     * NOTE: DO NOT call this function when settingitem is being edited.
+     *
+     * @param aIncludedMedias bit flag definition of which medias are
+     *        included in the dialog. See AknCommonDialogsDynMem::TMemoryTypes.
+     *        Value -1 indicates the default dialog value will be used.
+     */
+    IMPORT_C void SetIncludedMediasL( TInt aIncludedMedias );
+    
 protected: // Data
 
     // Ref: External data
--- a/classicui_pub/editors_api/inc/EIKEDWIN.H	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_pub/editors_api/inc/EIKEDWIN.H	Mon Mar 15 12:41:34 2010 +0200
@@ -65,6 +65,7 @@
 class CSmileyCustomWrap;
 class CAknEdwinPhysicsHandler;
 class CEdwinAsyncFormat;
+class MAknsSkinInstance;
 
 // Forward declaration of now removed (Series 60 2.0) custom drawer class for CEikEdwin
 class CEikAvkonCustomDraw;
@@ -482,6 +483,12 @@
          * Record formatted height of layout
          */
         TInt iRecordFormattedHeight;
+
+        /**
+         * Skins instance.
+         * Not own.
+         */
+        MAknsSkinInstance* iSkinInstance;
         };
 
 public:
@@ -2337,14 +2344,11 @@
 public: 
     void EnableSmileySupportL( TBool aEnableSmiley );
     TBool IsSmileyEnabled() const;
-    void DrawSmileyInTextL( CBitmapContext& aGc, CFont& aFont, 
-        const TDesC& aText, const TPoint& aPt );
-    void ConvertVisibleTextForSmileyL( TBool aTextToCode );    
-    void HandleScrollForSmileyL();
+    void DrawSmileyInTextL( RRegion& rgn, const TRect& aDrawRect, 
+        CBitmapContext& aGc, CFont& aFont, const TDesC& aText, const TPoint& aPt );
+    void ConvertVisibleTextForSmileyL( TBool aTextToCode );
     TBool AdjustCursorForSmileyL( TInt aOldCursor, TCursorSelection& aSelect );
     TRect AdjustDrawRectForSmiley( const TRect& aRect ) const;
-    void GetClipRegionForSmiley( RRegion& rgn, CFont& aFont, const TDesC& aText, 
-        const TPoint& aPt, const TRect& aRect ) const;
     HBufC* ExtractTextLC( TCursorSelection aSelect );
     void ConvertSmileyIconToTextL( TInt aStartPos, TDes& aText );
 
@@ -2740,7 +2744,7 @@
     void ScrollViewToCursorLineL();
     void PerformRecordedOperationL();
     void ScrollIfAtTopOrBottomL();
-    void SetSelectionVisibilityL(TBool isVisable);
+    void SetSelectionVisibilityL( TBool aIsVisable );
     
     /**
      * Sets scrollbars with kinetic scrolling.
@@ -3030,7 +3034,18 @@
      */
     TBool KineticScrollingEnabled() const;
 
-	
+    /**
+     * Draws background to the whole view area. Call with parameter value ETrue
+     * must be followed by a call with EFalse or otherwise window's redraw
+     * isn't ended properly and graphics context is not deactivated.
+     *
+     * @param aStart If true then window area occupied by editor's view is
+     *        invalidated and redraw is began. Also graphics context is
+     *        activated. EFalse ends the redraw and deactivates graphics
+     *        context.
+     */
+    void DrawViewBackground( TBool aStart ) const;
+
 protected:
 
     /**
--- a/classicui_pub/editors_api/inc/EikCcpu.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_pub/editors_api/inc/EikCcpu.h	Mon Mar 15 12:41:34 2010 +0200
@@ -28,7 +28,7 @@
 
 class CEikButtonGroupContainer;
 class CEikMenuBar;
-
+class CAknCcpuSupportExtension;
 
 /**
  * Interface for cut, copy, paste and undo functionality.
@@ -218,15 +218,11 @@
     IMPORT_C void* ExtensionInterface( TUid aInterface );
 private:
     TBitFlags iFlags;
-    TBool isCbaEmded;
     // Owned
-    CEikButtonGroupContainer* iCba;
-    
-
+    CAknCcpuSupportExtension* iExtention;//put isCbaEmded,iCba,iDialogCba in extension
 	// Not owned
 	CEikMenuBar* iMenu;
 	MEikCcpuEditor* iEditor;
-	CEikButtonGroupContainer* iDialogCba;
 	};
 
 #endif // EIKCCPU_H
--- a/classicui_pub/indicators_api/inc/AknIndicatorContainer.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_pub/indicators_api/inc/AknIndicatorContainer.h	Mon Mar 15 12:41:34 2010 +0200
@@ -290,6 +290,8 @@
 	void SetIncallBubbleDisabled( TBool aDisabled );
 
 	void ResetAnimTicker( TBool bForeground );
+	
+	TInt CountShownIndicator() const;
 
 public:
 
--- a/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh	Mon Mar 15 12:41:34 2010 +0200
@@ -366,6 +366,7 @@
 
     EPenInputCmdVITUT,
     EPeninputCmdFSQ,
+    EPeninputCmdHwr,
     
     /**
     * Command id for dealing with discreet popup's close
--- a/classicui_pub/ui_framework_utilities_api/inc/AknUtils.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/classicui_pub/ui_framework_utilities_api/inc/AknUtils.h	Mon Mar 15 12:41:34 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -81,6 +81,7 @@
 class TAknWindowLineLayout;
 class TAknMultiLineTextLayout;
 class TAknTextLineLayout;
+class MAknsSkinInstance;
 
 /**
  * Egul library had methods to clip text from right side, this class includes methods to clip from both sides.
@@ -2716,9 +2717,13 @@
      * @param aRect     Rectangle occupied by the item that is separated.
      * @param aColor    Text color used in item. Separator is drawn with this
      *                  color and additional alpha mask.
+     * @param aSkin		Skin instance used to get the alpha value
+     *                  for the separator line color.
      */
     IMPORT_C static void DrawSeparator( CGraphicsContext& aGc, 
-        const TRect& aRect, const TRgb& aColor );
+                                        const TRect& aRect,
+                                        const TRgb& aColor,
+                                        MAknsSkinInstance* aSkin = NULL );
     };
 
 #endif //  __AKNUTILS_H__
--- a/commonuis/CommonDialogs/BWINS/COMMONDIALOGSU.DEF	Fri Mar 12 15:43:43 2010 +0200
+++ b/commonuis/CommonDialogs/BWINS/COMMONDIALOGSU.DEF	Mon Mar 15 12:41:34 2010 +0200
@@ -113,26 +113,28 @@
 	?RunSelectDlgLD@AknCommonDialogsDynMem@@SAHHAAVTDes16@@HHPAVMAknFileSelectionObserver@@@Z @ 112 NONAME ; int AknCommonDialogsDynMem::RunSelectDlgLD(int, class TDes16 &, int, int, class MAknFileSelectionObserver *)
 	?RunSelectDlgLD@AknCommonDialogsDynMem@@SAHHAAVTDes16@@HPAVMAknFileFilter@@PAVMAknFileSelectionObserver@@@Z @ 113 NONAME ; int AknCommonDialogsDynMem::RunSelectDlgLD(int, class TDes16 &, int, class MAknFileFilter *, class MAknFileSelectionObserver *)
 	?RunSelectDlgLD@AknCommonDialogsDynMem@@SAHHAAVTDes16@@HPAVMAknFileSelectionObserver@@@Z @ 114 NONAME ; int AknCommonDialogsDynMem::RunSelectDlgLD(int, class TDes16 &, int, class MAknFileSelectionObserver *)
-    ?RenameL@CAknFileNamePromptDialog@@QAEHAAVTDes16@@@Z @ 115 NONAME ; int CAknFileNamePromptDialog::RenameL(class TDes16 &)
-	??0CAknMemorySelectionSettingItemMultiDrive@@QAE@HAAW4TDriveNumber@@@Z @ 116  NONAME ; CAknMemorySelectionSettingItemMultiDrive::CAknMemorySelectionSettingItemMultiDrive(int, enum TDriveNumber &)
-	??1CAknMemorySelectionDialogMultiDrive@@UAE@XZ @ 117  NONAME ; CAknMemorySelectionDialogMultiDrive::~CAknMemorySelectionDialogMultiDrive(void)
-	??1CAknMemorySelectionSettingItemMultiDrive@@UAE@XZ @ 118  NONAME ; CAknMemorySelectionSettingItemMultiDrive::~CAknMemorySelectionSettingItemMultiDrive(void)
-	?AddDrivePathsL@CAknMemorySelectionDialogMultiDrive@@QAEHABVTDesC16@@0@Z @ 119  NONAME ; int CAknMemorySelectionDialogMultiDrive::AddDrivePathsL(class TDesC16 const &, class TDesC16 const &)
-	?CompleteConstructionL@CAknMemorySelectionSettingItemMultiDrive@@UAEXXZ @ 120  NONAME ; void CAknMemorySelectionSettingItemMultiDrive::CompleteConstructionL(void)
-	?EditItemL@CAknMemorySelectionSettingItemMultiDrive@@UAEXH@Z @ 121  NONAME ; void CAknMemorySelectionSettingItemMultiDrive::EditItemL(int)
-	?ExecuteL@CAknMemorySelectionDialogMultiDrive@@UAE?AW4TReturnKey@CAknCommonDialogsBase@@AAW4TDriveNumber@@@Z @ 122  NONAME ; enum CAknCommonDialogsBase::TReturnKey CAknMemorySelectionDialogMultiDrive::ExecuteL(enum TDriveNumber &)
-	?ExecuteL@CAknMemorySelectionDialogMultiDrive@@UAE?AW4TReturnKey@CAknCommonDialogsBase@@AAW4TDriveNumber@@PAVTDes16@@1@Z @ 123  NONAME ; enum CAknCommonDialogsBase::TReturnKey CAknMemorySelectionDialogMultiDrive::ExecuteL(enum TDriveNumber &, class TDes16 *, class TDes16 *)
-	?FindIndexByDrive@CAknMemorySelectionDialogMultiDrive@@QAEHABW4TDriveNumber@@@Z @ 124  NONAME ; int CAknMemorySelectionDialogMultiDrive::FindIndexByDrive(enum TDriveNumber const &)
-	?GetItem@CAknMemorySelectionDialogMultiDrive@@QAEXHAAVTDes16@@@Z @ 125  NONAME ; void CAknMemorySelectionDialogMultiDrive::GetItem(int, class TDes16 &)
-	?LoadL@CAknMemorySelectionSettingItemMultiDrive@@UAEXXZ @ 126  NONAME ; void CAknMemorySelectionSettingItemMultiDrive::LoadL(void)
-	?NewL@CAknMemorySelectionDialogMultiDrive@@SAPAV1@W4TCommonDialogType@@H@Z @ 127  NONAME ; class CAknMemorySelectionDialogMultiDrive * CAknMemorySelectionDialogMultiDrive::NewL(enum TCommonDialogType, int)
-	?NewL@CAknMemorySelectionDialogMultiDrive@@SAPAV1@W4TCommonDialogType@@HH@Z @ 128  NONAME ; class CAknMemorySelectionDialogMultiDrive * CAknMemorySelectionDialogMultiDrive::NewL(enum TCommonDialogType, int, int)
-	?NewL@CAknMemorySelectionDialogMultiDrive@@SAPAV1@W4TCommonDialogType@@HHH@Z @ 129  NONAME ; class CAknMemorySelectionDialogMultiDrive * CAknMemorySelectionDialogMultiDrive::NewL(enum TCommonDialogType, int, int, int)
-	?RunDlgLD@CAknMemorySelectionDialogMultiDrive@@SAHAAW4TDriveNumber@@@Z @ 130  NONAME ; int CAknMemorySelectionDialogMultiDrive::RunDlgLD(enum TDriveNumber &)
-	?RunDlgLD@CAknMemorySelectionDialogMultiDrive@@SAHAAW4TDriveNumber@@ABVTDesC16@@@Z @ 131  NONAME ; int CAknMemorySelectionDialogMultiDrive::RunDlgLD(enum TDriveNumber &, class TDesC16 const &)
-	?RunDlgLD@CAknMemorySelectionDialogMultiDrive@@SAHAAW4TDriveNumber@@HPAVTDes16@@1@Z @ 132  NONAME ; int CAknMemorySelectionDialogMultiDrive::RunDlgLD(enum TDriveNumber &, int, class TDes16 *, class TDes16 *)
-	?SetLeftSoftkeyL@CAknMemorySelectionDialogMultiDrive@@QAEXABVTDesC16@@@Z @ 133  NONAME ; void CAknMemorySelectionDialogMultiDrive::SetLeftSoftkeyL(class TDesC16 const &)
-	?SetRightSoftkeyL@CAknMemorySelectionDialogMultiDrive@@QAEXABVTDesC16@@@Z @ 134  NONAME ; void CAknMemorySelectionDialogMultiDrive::SetRightSoftkeyL(class TDesC16 const &)
-	?SetTitleL@CAknMemorySelectionDialogMultiDrive@@QAEXABVTDesC16@@@Z @ 135  NONAME ; void CAknMemorySelectionDialogMultiDrive::SetTitleL(class TDesC16 const &)
-	?SettingTextL@CAknMemorySelectionSettingItemMultiDrive@@UAEABVTDesC16@@XZ @ 136  NONAME ; class TDesC16 const & CAknMemorySelectionSettingItemMultiDrive::SettingTextL(void)
-	?StoreL@CAknMemorySelectionSettingItemMultiDrive@@UAEXXZ @ 137  NONAME ; void CAknMemorySelectionSettingItemMultiDrive::StoreL(void)
+	?RenameL@CAknFileNamePromptDialog@@QAEHAAVTDes16@@@Z @ 115 NONAME ; int CAknFileNamePromptDialog::RenameL(class TDes16 &)
+	??0CAknMemorySelectionSettingItemMultiDrive@@QAE@HAAW4TDriveNumber@@@Z @ 116 NONAME ; CAknMemorySelectionSettingItemMultiDrive::CAknMemorySelectionSettingItemMultiDrive(int, enum TDriveNumber &)
+	??1CAknMemorySelectionDialogMultiDrive@@UAE@XZ @ 117 NONAME ; CAknMemorySelectionDialogMultiDrive::~CAknMemorySelectionDialogMultiDrive(void)
+	??1CAknMemorySelectionSettingItemMultiDrive@@UAE@XZ @ 118 NONAME ; CAknMemorySelectionSettingItemMultiDrive::~CAknMemorySelectionSettingItemMultiDrive(void)
+	?AddDrivePathsL@CAknMemorySelectionDialogMultiDrive@@QAEHABVTDesC16@@0@Z @ 119 NONAME ; int CAknMemorySelectionDialogMultiDrive::AddDrivePathsL(class TDesC16 const &, class TDesC16 const &)
+	?CompleteConstructionL@CAknMemorySelectionSettingItemMultiDrive@@UAEXXZ @ 120 NONAME ; void CAknMemorySelectionSettingItemMultiDrive::CompleteConstructionL(void)
+	?EditItemL@CAknMemorySelectionSettingItemMultiDrive@@UAEXH@Z @ 121 NONAME ; void CAknMemorySelectionSettingItemMultiDrive::EditItemL(int)
+	?ExecuteL@CAknMemorySelectionDialogMultiDrive@@UAE?AW4TReturnKey@CAknCommonDialogsBase@@AAW4TDriveNumber@@@Z @ 122 NONAME ; enum CAknCommonDialogsBase::TReturnKey CAknMemorySelectionDialogMultiDrive::ExecuteL(enum TDriveNumber &)
+	?ExecuteL@CAknMemorySelectionDialogMultiDrive@@UAE?AW4TReturnKey@CAknCommonDialogsBase@@AAW4TDriveNumber@@PAVTDes16@@1@Z @ 123 NONAME ; enum CAknCommonDialogsBase::TReturnKey CAknMemorySelectionDialogMultiDrive::ExecuteL(enum TDriveNumber &, class TDes16 *, class TDes16 *)
+	?FindIndexByDrive@CAknMemorySelectionDialogMultiDrive@@QAEHABW4TDriveNumber@@@Z @ 124 NONAME ; int CAknMemorySelectionDialogMultiDrive::FindIndexByDrive(enum TDriveNumber const &)
+	?GetItem@CAknMemorySelectionDialogMultiDrive@@QAEXHAAVTDes16@@@Z @ 125 NONAME ; void CAknMemorySelectionDialogMultiDrive::GetItem(int, class TDes16 &)
+	?LoadL@CAknMemorySelectionSettingItemMultiDrive@@UAEXXZ @ 126 NONAME ; void CAknMemorySelectionSettingItemMultiDrive::LoadL(void)
+	?NewL@CAknMemorySelectionDialogMultiDrive@@SAPAV1@W4TCommonDialogType@@H@Z @ 127 NONAME ; class CAknMemorySelectionDialogMultiDrive * CAknMemorySelectionDialogMultiDrive::NewL(enum TCommonDialogType, int)
+	?NewL@CAknMemorySelectionDialogMultiDrive@@SAPAV1@W4TCommonDialogType@@HH@Z @ 128 NONAME ; class CAknMemorySelectionDialogMultiDrive * CAknMemorySelectionDialogMultiDrive::NewL(enum TCommonDialogType, int, int)
+	?NewL@CAknMemorySelectionDialogMultiDrive@@SAPAV1@W4TCommonDialogType@@HHH@Z @ 129 NONAME ; class CAknMemorySelectionDialogMultiDrive * CAknMemorySelectionDialogMultiDrive::NewL(enum TCommonDialogType, int, int, int)
+	?RunDlgLD@CAknMemorySelectionDialogMultiDrive@@SAHAAW4TDriveNumber@@@Z @ 130 NONAME ; int CAknMemorySelectionDialogMultiDrive::RunDlgLD(enum TDriveNumber &)
+	?RunDlgLD@CAknMemorySelectionDialogMultiDrive@@SAHAAW4TDriveNumber@@ABVTDesC16@@@Z @ 131 NONAME ; int CAknMemorySelectionDialogMultiDrive::RunDlgLD(enum TDriveNumber &, class TDesC16 const &)
+	?RunDlgLD@CAknMemorySelectionDialogMultiDrive@@SAHAAW4TDriveNumber@@HPAVTDes16@@1@Z @ 132 NONAME ; int CAknMemorySelectionDialogMultiDrive::RunDlgLD(enum TDriveNumber &, int, class TDes16 *, class TDes16 *)
+	?SetLeftSoftkeyL@CAknMemorySelectionDialogMultiDrive@@QAEXABVTDesC16@@@Z @ 133 NONAME ; void CAknMemorySelectionDialogMultiDrive::SetLeftSoftkeyL(class TDesC16 const &)
+	?SetRightSoftkeyL@CAknMemorySelectionDialogMultiDrive@@QAEXABVTDesC16@@@Z @ 134 NONAME ; void CAknMemorySelectionDialogMultiDrive::SetRightSoftkeyL(class TDesC16 const &)
+	?SetTitleL@CAknMemorySelectionDialogMultiDrive@@QAEXABVTDesC16@@@Z @ 135 NONAME ; void CAknMemorySelectionDialogMultiDrive::SetTitleL(class TDesC16 const &)
+	?SettingTextL@CAknMemorySelectionSettingItemMultiDrive@@UAEABVTDesC16@@XZ @ 136 NONAME ; class TDesC16 const & CAknMemorySelectionSettingItemMultiDrive::SettingTextL(void)
+	?StoreL@CAknMemorySelectionSettingItemMultiDrive@@UAEXXZ @ 137 NONAME ; void CAknMemorySelectionSettingItemMultiDrive::StoreL(void)
+	?SetIncludedMediasL@CAknMemorySelectionSettingItemMultiDrive@@QAEXH@Z @ 138 NONAME ; void CAknMemorySelectionSettingItemMultiDrive::SetIncludedMediasL(int)
+
--- a/commonuis/CommonDialogs/EABI/COMMONDIALOGSU.DEF	Fri Mar 12 15:43:43 2010 +0200
+++ b/commonuis/CommonDialogs/EABI/COMMONDIALOGSU.DEF	Mon Mar 15 12:41:34 2010 +0200
@@ -166,4 +166,5 @@
 	_ZN40CAknMemorySelectionSettingItemMultiDriveD2Ev @ 165 NONAME
 	_ZTI40CAknMemorySelectionSettingItemMultiDrive @ 166 NONAME ; #<TI>#
 	_ZTV40CAknMemorySelectionSettingItemMultiDrive @ 167 NONAME ; #<VT>#
+	_ZN40CAknMemorySelectionSettingItemMultiDrive18SetIncludedMediasLEi @ 168 NONAME
 
--- a/commonuis/CommonDialogs/src/CAknFileSelectionEventHandler.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/commonuis/CommonDialogs/src/CAknFileSelectionEventHandler.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -288,17 +288,17 @@
         {
         case ERightSoftkeyPress: // USER HAS HIT RIGHT SOFTKEY
             {
+            while( iModel->DirectoryLevel() > 0 ) // Find until existing contents
+                {
+                entries = iModel->GotoParentFolderL();
+                PopIndices( aTopItemIndex, aFocusedItemIndex );
+                if( entries > 0 || entries < KErrNotFound )
+                    {
+                    break;
+                    }
+                }
             if( iModel->DirectoryLevel() > 0 ) // We are not in the root folder
                 {
-                while( ETrue ) // Find until existing contents
-                    {
-                    entries = iModel->GotoParentFolderL();
-                    PopIndices( aTopItemIndex, aFocusedItemIndex );
-                    if( entries > 0 || entries < KErrNotFound )
-                        {
-                        break;
-                        }
-                    }
                 if( entries > 0 )
                     {
                     if (aFocusedItemIndex >= entries)
--- a/commonuis/CommonDialogs/src/caknmemoryselectiondialogmultidrive.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/commonuis/CommonDialogs/src/caknmemoryselectiondialogmultidrive.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -115,11 +115,11 @@
         layout = MAknMemorySelectionModel::ELayoutDoublePopup;
         }
 
+    // Create model of listbox listing the drives in iRootPathArray:
     iModel = CAknMemorySelectionModelMultiDrive::NewL(
         iCoeEnv, &iRootPathArray, &iDefaultFolderArray,
         iIncludedMedias, aShowUnavailableDrives, layout );
 
-    // Create model of listbox listing the drives in iRootPathArray:
     GetSystemDrivesL( userDefinedId );
 
     iEventHandler = CAknMemorySelectionEventHandler::NewL(
--- a/commonuis/CommonDialogs/src/caknmemoryselectionsettingitemmultidrive.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/commonuis/CommonDialogs/src/caknmemoryselectionsettingitemmultidrive.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -26,26 +26,45 @@
 #include "MAknCFDFileSystemObserver.h"
 
 
-NONSHARABLE_CLASS(CAknMemorySelectionSettingItemExtension) : public CBase,
-                                                             public MAknCFDFileSystemObserver
+NONSHARABLE_CLASS(CAknMemorySelectionSettingItemExtension)
+    : public CBase,
+      public MAknCFDFileSystemObserver
     {
 
 public:
-    CAknMemorySelectionSettingItemExtension(CAknMemorySelectionSettingItemMultiDrive* aSettingItem);
+    CAknMemorySelectionSettingItemExtension(
+        CAknMemorySelectionSettingItemMultiDrive* aSettingItem );
     ~CAknMemorySelectionSettingItemExtension();
 
-    // second phase construct
-    void ConstructL();
+    /**
+     * second phase construct
+     *
+     * @param aIncludedMedias bit flag definition of which medias are
+     *        included in the dialog. See AknCommonDialogsDynMem::TMemoryTypes.
+     */
+    void ConstructL( TInt aIncludedMedias );
     
     /**
      * Static constructor.
      *
      * @since S60 5.0
      * @param aSettingItem defines a pointer to the setting item. 
+     * @param aIncludedMedias bit flag definition of which medias are
+     *        included in the dialog. See AknCommonDialogsDynMem::TMemoryTypes.
+     *        if not set, use dialog default value.
      * @return Returns a pointer to an instance of itself.
      */
-    static CAknMemorySelectionSettingItemExtension* NewL(CAknMemorySelectionSettingItemMultiDrive* aSettingItem);
+    static CAknMemorySelectionSettingItemExtension* NewL(
+        CAknMemorySelectionSettingItemMultiDrive* aSettingItem,
+        TInt aIncludedMedias = -1 );
     
+    /**
+     * Construct memory selection dialog
+     *
+     * @param aIncludedMedias bit flag definition of which medias are
+     *        included in the dialog. See AknCommonDialogsDynMem::TMemoryTypes.
+     */
+    void ConstructDialogL( TInt aIncludedMedias );
     
     // Functions from base interface MAknCFDFileSystemObserver
     /**
@@ -61,6 +80,9 @@
     
     // Own: The extension of setting item
     CAknCFDFileSystemEvent* iFSEvent;
+    
+    // Own: Indicate which media types of drives could be visible.
+    TInt iIncludedMedias;
     };
 
 // ======== MEMBER FUNCTIONS ========
@@ -94,7 +116,10 @@
 //
 EXPORT_C void CAknMemorySelectionSettingItemMultiDrive::CompleteConstructionL()
     {
-    iExtension = CAknMemorySelectionSettingItemExtension::NewL(this);
+    if ( !iExtension )
+        {
+        iExtension = CAknMemorySelectionSettingItemExtension::NewL( this );
+        }
     }
 
 
@@ -119,28 +144,30 @@
     else
         {
         // Changed with selection key
-        if( ( iExtension->iDialog->NumberOfItems() == 2 ) &&
-                ( !iExtension->iDialog->HasUnavailbleMMC() ) )
+        if( ( iExtension->iDialog->NumberOfItems() == 2 ) )
             {
             // Two items in list, function as binary pop-up setting page
             TInt selectedIndex =
-                iExtension->iDialog->FindIndexByDrive(
-                    iInternalData );
+                iExtension->iDialog->FindIndexByDrive( iInternalData );
 	          if ( selectedIndex == KErrNotFound )
 	              {
 	              selectedIndex = 0;
 	              }
 	          else
 	              {
-	              selectedIndex = 1 - selectedIndex; // switch to another one.
+                  TDriveNumber driveNum =
+                      iExtension->iDialog->FindDriveByIndex( 1 - selectedIndex );
+                  if ( AknCFDUtility::DriveStatusL( driveNum ) == EDriveOK )
+                      {
+                      selectedIndex = 1 - selectedIndex; // switch to another one.
+                      }
 	              }
             iInternalData =
                 iExtension->iDialog->FindDriveByIndex( selectedIndex );
             }
         else
             {
-            iExtension->iDialog->ExecuteL(
-                iInternalData, NULL, NULL );
+            iExtension->iDialog->ExecuteL( iInternalData, NULL, NULL );
             }
         }
 
@@ -182,25 +209,46 @@
         CompleteConstructionL();
         }
 
-    TInt memoryIndex = iExtension->iDialog->FindIndexByDrive(
-                            iInternalData );
-    if ( AknCFDUtility::DriveStatusL( iInternalData )
-         != EDriveOK )
+    TInt memoryIndex = iExtension->iDialog->FindIndexByDrive( iInternalData );
+    if ( AknCFDUtility::DriveStatusL( iInternalData ) != EDriveOK )
         {
-        TInt drive;
-        User::LeaveIfError( DriveInfo::GetDefaultDrive(
-            DriveInfo::EDefaultSystem, drive ) );
-        memoryIndex = iExtension->iDialog->FindIndexByDrive(
-                            TDriveNumber( drive ) );
+        // Find the first proper drive in the dialog list.
+        memoryIndex = 0;
+        while ( memoryIndex < iExtension->iDialog->NumberOfItems() )
+            {
+            iInternalData = iExtension->iDialog->FindDriveByIndex( memoryIndex );
+            if ( AknCFDUtility::DriveStatusL( iInternalData ) == EDriveOK )
+                {
+                break;
+                }
+            memoryIndex++;
+            }
+        // Not find the proper drive.
+        if ( memoryIndex == iExtension->iDialog->NumberOfItems() )
+            {
+            iInternalData = EDriveC;
+            memoryIndex = KErrNotFound;
+            }
         }
+
+    if ( memoryIndex == KErrNotFound )
+        {
+        return KNullDesC;
+        }
+
     if( !iSettingText )
         iSettingText = HBufC::NewL( KMaxName );
     TPtr ptrSettingText( iSettingText->Des() );
     iExtension->iDialog->GetItem( memoryIndex, ptrSettingText );
+
     return *iSettingText;
     }
 
 
+// ---------------------------------------------------------------------------
+// CAknMemorySelectionSettingItemMultiDrive::UpdateSettingItemContentL
+// ---------------------------------------------------------------------------
+//
 void CAknMemorySelectionSettingItemMultiDrive::UpdateSettingItemContentL()
     {
     if ( iExtension->iDialog != NULL )
@@ -210,22 +258,37 @@
 
         // Update setting item value.
         TInt selectedIndex = iExtension->iDialog->
-            FindIndexByDrive(iInternalData);
+            FindIndexByDrive( iInternalData );
 
-        if (selectedIndex == KErrNotFound)
+        if ( selectedIndex == KErrNotFound )
             {
-            iInternalData = EDriveC;
+            // If the selected index is not found, set it to the first one
+            selectedIndex = 0;
             }
-        else
-            {
-            iInternalData = iExtension->iDialog->
-                FindDriveByIndex(selectedIndex);
-            }
+        iInternalData = iExtension->iDialog->FindDriveByIndex( selectedIndex );
 
         UpdateListBoxTextL();
         }
     }
 
+// ---------------------------------------------------------------------------
+// CAknMemorySelectionSettingItemMultiDrive::SetIncludedMediasL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CAknMemorySelectionSettingItemMultiDrive::SetIncludedMediasL(
+    TInt aIncludedMedias )
+    {
+    if ( !iExtension )
+        {
+        iExtension = CAknMemorySelectionSettingItemExtension::NewL(
+            this, aIncludedMedias );
+        }
+    else if ( iExtension->iIncludedMedias != aIncludedMedias )
+        {
+        iExtension->ConstructDialogL( aIncludedMedias );
+        }
+    }
+
 
 // ---------------------------------------------------------------------------
 // CAknMemorySelectionSettingItemExtension
@@ -233,7 +296,8 @@
 // ---------------------------------------------------------------------------
 //
 CAknMemorySelectionSettingItemExtension::
-        CAknMemorySelectionSettingItemExtension(CAknMemorySelectionSettingItemMultiDrive* aSettingItem)
+    CAknMemorySelectionSettingItemExtension(
+        CAknMemorySelectionSettingItemMultiDrive* aSettingItem )
         : iSettingItem( aSettingItem )
     {
     }
@@ -276,16 +340,43 @@
 
 // ---------------------------------------------------------------------------
 // CAknMemorySelectionSettingItemExtension
+// ConstructDialogL
+// ---------------------------------------------------------------------------
+//
+void CAknMemorySelectionSettingItemExtension::ConstructDialogL(
+    TInt aIncludedMedias )
+    {
+    if ( iDialog )
+        {
+        delete iDialog;
+        iDialog = NULL;
+        }
+    
+    iIncludedMedias = aIncludedMedias;
+    
+    if ( aIncludedMedias == -1 )
+        {
+        iDialog = CAknMemorySelectionDialogMultiDrive::NewL(
+            ECFDDialogTypeNormal, ETrue );
+        }
+    else
+        {
+        iDialog = CAknMemorySelectionDialogMultiDrive::NewL( 
+            ECFDDialogTypeNormal, 0, ETrue, aIncludedMedias );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CAknMemorySelectionSettingItemExtension
 // ConstructL
 // ---------------------------------------------------------------------------
 //
-void CAknMemorySelectionSettingItemExtension::ConstructL()
+void CAknMemorySelectionSettingItemExtension::ConstructL( TInt aIncludedMedias )
     {
+    ConstructDialogL( aIncludedMedias );
     
-    iDialog = CAknMemorySelectionDialogMultiDrive::NewL(
-            ECFDDialogTypeNormal, ETrue);
-    
-    iFSEvent = CAknCFDFileSystemEvent::NewL(CCoeEnv::Static()->FsSession(), *this, ENotifyDisk);
+    iFSEvent = CAknCFDFileSystemEvent::NewL(
+        CCoeEnv::Static()->FsSession(), *this, ENotifyDisk );
     }
 
 // ---------------------------------------------------------------------------
@@ -293,13 +384,16 @@
 // NewL
 // ---------------------------------------------------------------------------
 //
-CAknMemorySelectionSettingItemExtension*  CAknMemorySelectionSettingItemExtension::NewL(CAknMemorySelectionSettingItemMultiDrive* aSettingItem)
+CAknMemorySelectionSettingItemExtension*
+    CAknMemorySelectionSettingItemExtension::NewL(
+        CAknMemorySelectionSettingItemMultiDrive* aSettingItem,
+        TInt aIncludedMedias )
     {
     CAknMemorySelectionSettingItemExtension* self =
-        new( ELeave ) CAknMemorySelectionSettingItemExtension(aSettingItem);
+        new( ELeave ) CAknMemorySelectionSettingItemExtension( aSettingItem );
 
     CleanupStack::PushL( self );
-    self->ConstructL();
+    self->ConstructL( aIncludedMedias );
     CleanupStack::Pop( self );
 
     return self;
--- a/commonuis/CommonUi/src/DocumentHandler.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/commonuis/CommonUi/src/DocumentHandler.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -1396,7 +1396,7 @@
         TInt err = aSharableFile.Open(iSharableFS,aFileName,EFileShareReadersOnly);
         if (err == KErrInUse)
             {
-            User::LeaveIfError(aSharableFile.Open(iSharableFS,aFileName,EFileShareReadersOrWriters));
+            err = aSharableFile.Open( iSharableFS,aFileName,EFileShareReadersOrWriters );
             }
         else if ( err == KErrTooBig )
         	{
@@ -1407,7 +1407,7 @@
 				err = file64->Open(iSharableFS,aFileName,EFileShareReadersOnly);
 				if( err == KErrInUse )
 					{
-					User::LeaveIfError(aSharableFile.Open(iSharableFS,aFileName,EFileShareReadersOrWriters));
+                    err = aSharableFile.Open( iSharableFS,aFileName,EFileShareReadersOrWriters );
 					}
 				}
         	}
--- a/commonuis/CommonUi/src/FindItemDialog.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/commonuis/CommonUi/src/FindItemDialog.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -1968,6 +1968,18 @@
 
     iTappingOffset = iEdwin->Rect().iTl - Rect().iTl;
 
+    CFindItemEngine::SFoundItem item;
+    TBool anyFound = iController->Item( item );
+    if( anyFound )
+    	{
+        TInt pos = 0;
+        TInt length = iEdwin->TextLayout()->PosRangeInBand( pos );
+        if( item.iStartPos >= pos + length )
+            {
+            TRAP_IGNORE( iEdwin->MoveDisplayL( TCursorPosition::EFPageDown ) );
+            }
+    	}
+
     TRAP_IGNORE( UpdateScrollIndicatorL() );
     }
 
--- a/commonuisupport/uikon/srvsrc/EIKNFYSV.CPP	Fri Mar 12 15:43:43 2010 +0200
+++ b/commonuisupport/uikon/srvsrc/EIKNFYSV.CPP	Mon Mar 15 12:41:34 2010 +0200
@@ -19,6 +19,7 @@
 #include <eikenv.h>
 #include <eikmsg.h>
 #include <e32uid.h>
+#include <e32notif.h>
 #include "EIKSRV.PAN"
 #include "eiknotapi.h"
 #include <bafindf.h>
--- a/lafagnosticuifoundation/cone/inc/COECNTRL.H	Fri Mar 12 15:43:43 2010 +0200
+++ b/lafagnosticuifoundation/cone/inc/COECNTRL.H	Mon Mar 15 12:41:34 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -359,9 +359,10 @@
 	inline CWindowGc* GetGc() const;
 private:
 	friend class CCoeRedrawer;
-	void DrawComponents(const TRect& aRect) const;	
+	void Constructor(CCoeEnv* aCoeEnv);
+	void DrawComponents(const TRect& aRect) const;
 	void DrawWindowOwningComponentsNow() const;
-	void DrawWindowOwningComponentsNow(const TRect &aRect) const;	
+	void DrawWindowOwningComponentsNow(const TRect& aRect) const;
 	void SetGrabbed(TBool aGrabbed, TInt aPointerNumber);
 	TBool IsGrabbed(TInt aPointerNumber = 0) const;
 	void DoMakeVisible(TBool aVisible);
--- a/lafagnosticuifoundation/cone/inc/CoeDynamicStorage.inl	Fri Mar 12 15:43:43 2010 +0200
+++ b/lafagnosticuifoundation/cone/inc/CoeDynamicStorage.inl	Mon Mar 15 12:41:34 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -57,7 +57,7 @@
 	{
 public:
 	RCoeDynamicDataStorage();
-	void Open();
+	TInt Open();
 	void Close();
 	TInt Count() const;
 	void ResetCount();
@@ -98,17 +98,22 @@
 	ResetCount();
 	}
 
-void RCoeDynamicDataStorage::Open()
+TInt RCoeDynamicDataStorage::Open()
 	{
 	ASSERT(!iDynamicData);
-	ReserveData();
-	
+	TInt err = ReserveData();
+
 #ifdef PROFILE_MEMORY
-	MEMORY_SAVED += KCurrentNumberOfOptionalVaraiblesInCCoeControl*sizeof(TAny*);
-	MEMORY_SAVED -= sizeof(RCoeDynamicDataStorage);
-#endif	
+	if (err==KErrNone)
+		{
+		MEMORY_SAVED += KCurrentNumberOfOptionalVaraiblesInCCoeControl*sizeof(TAny*);
+		MEMORY_SAVED -= sizeof(RCoeDynamicDataStorage);
+		}
+#endif
+
+	return err;
 	}
-	
+
 void RCoeDynamicDataStorage::Close()
 	{
 #ifdef PROFILE_MEMORY
@@ -181,14 +186,14 @@
 
 inline TAny* RCoeDynamicDataStorage::Data(TInt aSlotIndex, TAny* aDefaultValue) const
 	{
-	if(!this)
+	if (!this)
 		return aDefaultValue;
-		
+
 	const TInt dataIndex = DataIndex(aSlotIndex);
-	if(dataIndex != KUndefinedIndex)
+	if (dataIndex!=KUndefinedIndex && iDynamicData!=NULL)	//Defensive Code
 		return iDynamicData[dataIndex];
 	else
-		return aDefaultValue;	
+		return aDefaultValue;
 	}
 
 inline TInt RCoeDynamicDataStorage::DataIndex(TInt aSlotIndex) const
--- a/lafagnosticuifoundation/cone/src/COECNTRL.CPP	Fri Mar 12 15:43:43 2010 +0200
+++ b/lafagnosticuifoundation/cone/src/COECNTRL.CPP	Mon Mar 15 12:41:34 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -69,12 +69,12 @@
 	inline CCoeControlStorage();
 	inline RCoeDynamicDataStorage& DynamicDataStorage();
 	inline const RCoeDynamicDataStorage& DynamicDataStorage() const;
-	inline void Open();
+	inline TInt Open();
 	inline void Close();
 	inline void AttemptCompress();
 	void SetPointerGrab(TUint aSet, TUint aClear);
 	TUint8& PointerGrab();
-	
+
 private:
 	RCoeDynamicDataStorage iDynamicDataStorage;
 	TUint8 iPointerGrabFlags; // The grab-status of each of the supported pointers
@@ -103,8 +103,8 @@
 inline const RCoeDynamicDataStorage& CCoeControlStorage::DynamicDataStorage() const
 	{ return iDynamicDataStorage; }
 
-inline void CCoeControlStorage::Open()
-	{ iDynamicDataStorage.Open(); }
+inline TInt CCoeControlStorage::Open()
+	{ return iDynamicDataStorage.Open(); }
 
 inline void CCoeControlStorage::Close()
 	{ iDynamicDataStorage.Close(); }
@@ -121,19 +121,7 @@
 control classes are derived. However, it can also be instantiated as a concrete 
 class. */
 	{
-	iCoeEnv = TheCoe();
-	
-	iData = new CCoeControlStorage;		// Non-leaving allocation
-	if (iData)
-		{
-		iData->Open();
-		}
-	else 
-		{
-		iFlags |= EMemoryAllocationFailed;	// Handle OOM later
-		}
-	
-	SetFocusing(CCoeControlStaticSettings::FocusedByDefault(iCoeEnv));	
+	Constructor(TheCoe());
 	}
 
 EXPORT_C CCoeControl::CCoeControl(CCoeEnv* aCoeEnv)
@@ -147,14 +135,17 @@
 
 @param aCoeEnv The control environment.*/
 	{
+	Constructor(aCoeEnv);
+	}
+
+void CCoeControl::Constructor(CCoeEnv* aCoeEnv)
+	{
 	iCoeEnv = aCoeEnv;
-	
+
 	iData = new CCoeControlStorage;		// Non-leaving allocation
-	if(iData)
-		iData->Open();
-	else 
+	if (!iData || iData->Open()!=KErrNone)
 		iFlags |= EMemoryAllocationFailed;	// Handle OOM later
-	
+
 	SetFocusing(CCoeControlStaticSettings::FocusedByDefault(iCoeEnv));
 	}
 
--- a/lafagnosticuifoundation/cone/tef/TCONE2STEP.CPP	Fri Mar 12 15:43:43 2010 +0200
+++ b/lafagnosticuifoundation/cone/tef/TCONE2STEP.CPP	Mon Mar 15 12:41:34 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -49,22 +49,31 @@
   Creates a control's window.\n
   The created window is the child of the application's window group.\n
   iDisplayed is set to ETrue to make the control visible.\n
-*/    
+*/
 void CTestCone2Control::ConstructL()
-    {
+	{
 	CreateWindowL();
 	iDisplayed = ETrue;
-    }
+	}
+/**
+  Function to give access to the CCoeControl's protected CreateWindowL function.
+  This is intended for use only with Low Memory tests.
+*/
+TInt CTestCone2Control::CreateWindow()
+	{
+	TRAPD(err,CreateWindowL());
+	return err;
+	}
 /**
   Sets this control as visible or invisible.\n
   This causes the control to disappear or reappear.\n
   When a control is created, it is made visible by default.\n
-*/   
+*/
 void CTestCone2Control::MakeVisible(TBool aVisible)
-    {
+	{
 	iDisplayed = aVisible;
 	DrawNow();
-    }
+	}
 /**
   Destructor for the container control.\n
   Deletes the component control "CTestCone2Control".\n
@@ -604,7 +613,7 @@
 	__UHEAP_MARKEND;
 	}
 
- 
+
 /**
    @SYMTestCaseID UIF-TCone2Step-TestSetandGetCCoeControlAPIsL
   
@@ -624,26 +633,92 @@
    and retrieved correctly.
    
  */
-
 void CTestDriver::TestSetandGetCCoeControlAPIsL()
 	{
- 	// Create a new CCoeControl object
+	// Create a new CCoeControl object
 	CCoeControl* testCtrl = new (ELeave) CCoeControl();
 	CleanupStack::PushL(testCtrl);
-	
+
 	// Part 1: Check that a default value of 0 is returned when no
-	// max width value has been set yet.  
+	// max width value has been set yet.
 	iStep->TEST(testCtrl->MaximumWidth() == 0);
-	
+
 	// Part 2: Set the maximum width to a new value.
 	TInt newMaxWidth = 5;
 	iStep->TEST(testCtrl->SetMaximumWidth(newMaxWidth) == KErrNone);
- 
- 	// Part 3: Access maximum width. Test that it equals the
- 	// value previously set.
- 	iStep->TEST(testCtrl->MaximumWidth() == newMaxWidth);
- 	
-	CleanupStack::PopAndDestroy(testCtrl); 	
+
+	// Part 3: Access maximum width. Test that it equals the
+	// value previously set.
+	iStep->TEST(testCtrl->MaximumWidth() == newMaxWidth);
+
+	CleanupStack::PopAndDestroy(testCtrl);
+	}
+
+/**
+   @SYMTestCaseID UIF-TCone2Step-TestSetandGetCCoeControlAPIsL
+
+   @SYMDEF ou1cimx1#261261
+
+   @SYMTestCaseDesc Tests creating a CCoeControl in low memory conditions.
+   In particular it tries to trip up the RCoeDynamicDataStorage mechanism.
+
+   @SYMTestPriority High
+
+   @SYMTestStatus Implemented
+
+   @SYMTestActions The test creates a CCoeControl object in an OOM loop with different burst values.
+   And sets and reads back a property that is stored in the DynamicDataStoreage.
+   Note: This test didn't actually suceed in producing the crash reported in the defect.
+   I couldn't see anyway to get to the crashing line with things in a bad state.
+
+   @SYMTestExpectedResults. The code doesn't crash.
+ */
+void CTestDriver::TestLowMemoryCoeControl()
+	{
+	CCoeControl* const parentVal=NULL;
+	CTestCone2Control* cnt;
+	CCoeControl* parent;
+	TInt burst;
+	TInt failRate;
+	TInt sucesses;
+	TBool sucess=EFalse;
+	TInt setErr;
+	TInt creErr;
+	for (burst=1;burst<15;++burst)
+		{
+		failRate=burst>1 ? 1:0;
+		sucesses=0;
+		do	{
+			cnt=NULL;
+			parent=reinterpret_cast<CCoeControl*>(KMaxTUint);
+			setErr=99;
+			creErr=99;
+			__UHEAP_BURSTFAILNEXT(failRate,burst);
+			__UHEAP_MARK;
+			cnt=new CTestCone2Control();
+			if (cnt)
+				{
+				setErr=cnt->SetParent(parentVal);
+				parent=cnt->Parent();
+				creErr=cnt->CreateWindow();
+				if (parent==parentVal && setErr==KErrNone && creErr==KErrNone)
+					sucess=ETrue;
+				delete cnt;
+				}
+			__UHEAP_MARKEND;
+			__UHEAP_RESET;
+			if (sucess)
+				{
+				++sucesses;
+				sucess=EFalse;
+				}
+			else
+				sucesses=0;
+			//Useful logging to see more details of what this code does
+			//INFO_PRINTF7(_L("FR=% 2d S=% 2d C=0x%x SE=%d WCE=%d PAR=0x%x"),failRate,sucesses,cnt,setErr,creErr,parent);
+			++failRate;
+			} while (sucesses<10);
+		}
 	}
 
 /**
@@ -693,121 +768,113 @@
    8. TestConeInputCapabilitiesAPIs
    9. TestSetAndGetSystemDefaultViewAPIsL
    10. TestSetandGetCCoeControlAPIsL
+   11. TestLowMemoryCoeControl
  */
 
 void CCone2TestAppUi::RunTestStepL(TInt aStepNum)
 	{
+	_LIT(KTest11Name,"UIF-TCone2Step-LowMemoryCoeControlConstruction");
+	_LIT(KTest11Desc,"Test creating CCoeControl in low memory");
+	_LIT(KReturn,"...completed with return value '%d'\n");
+	_LIT(KFinished,"Test Finished\n");
+	TInt ret;
 
 	switch(aStepNum)
-		{	 
-		case 1:
-			{
-			SetTestStepID(_L("UIF-TCone2Step-TestIsDisplayingDialogAndRemoveFromStackAPIsL"));
-			INFO_PRINTF1(_L("Test IsDisplayingDialog() and RemoveFromStack() APIs"));
-			TRAPD(ret, iDriver->TestIsDisplayingDialogAndRemoveFromStackAPIsL());
-			INFO_PRINTF2(_L("...completed with return value '%d'\n"), ret);
-			TEST(ret==KErrNone);
-			RecordTestResultL();
-			break;
-			}
-		case 2:
-			{
-			SetTestStepID(_L("UIF-TCone2Step-TestMakeVisibleOnChildControlsL"));
-			INFO_PRINTF1(_L("Test makevisible on its child controls"));
-			TRAPD(ret, iDriver->TestMakeVisibleOnChildControlsL());
-			INFO_PRINTF2(_L("...completed with return value '%d'\n"), ret);
-			TEST(ret==KErrNone);
-			RecordTestResultL();
-			break;
-			}
-		case 3:
-			{
-			SetTestStepID(_L("UIF-TCone2Step-TestAppHelpContextAPIL"));
-			INFO_PRINTF1(_L("Test AppHelpContext API"));
-			TRAPD(ret, iDriver->TestAppHelpContextAPIL());
-			INFO_PRINTF2(_L("...completed with return value '%d'\n"), ret);
-			TEST(ret==KErrNone);
-			RecordTestResultL();
-			break;
-			}
-		case 4:
-			{
-			SetTestStepID(_L("UIF-TCone2Step-TestReadResourceAPIsL"));
-			INFO_PRINTF1(_L("Test ReadResource APIs"));
-			TRAPD(ret, iDriver->TestReadResourceAPIsL());
-			INFO_PRINTF2(_L("...completed with return value '%d'\n"), ret);
-			TEST(ret==KErrNone);
-			RecordTestResultL();
-			break;
-			}
-		case 5:
-			{
-			SetTestStepID(_L("UIF-TCone2Step-TestCoeControlAPIsL"));
-			INFO_PRINTF1(_L("Test SetContainerWindow APIs"));
-			TRAPD(ret, iDriver->TestCoeControlAPIsL());
-			INFO_PRINTF2(_L("...completed with return value '%d'\n"), ret);
-			TEST(ret==KErrNone);
-			RecordTestResultL();
-			break;
-			}
-		case 6:
-			{
-			SetTestStepID(_L("UIF-TCone2Step-TestColorUseAPIsL"));
-			INFO_PRINTF1(_L("Test ColorUse APIs"));
-			TRAPD(ret, iDriver->TestColorUseAPIsL());
-			INFO_PRINTF2(_L("...completed with return value '%d'\n"), ret);
-			TEST(ret==KErrNone);
-			RecordTestResultL();
-			break;
-			}
-		case 7:
-			{
-			SetTestStepID(_L("UIF-TCone2Step-TestConeAppUiSimpleAndMiscAPIsL"));
-			INFO_PRINTF1(_L("Test Cone Misc APIs"));
-			TRAPD(ret, iDriver->TestConeMiscAPIsL());
-			INFO_PRINTF2(_L("...completed with return value '%d'\n"), ret);
-			TEST(ret==KErrNone);
-			RecordTestResultL();
-			break;
-			}
-		case 8:
-			{
-			SetTestStepID(_L("UIF-TCone2Step-TestConeInputCapabilitiesAPIs"));
-			INFO_PRINTF1(_L("Test InputCapabilities APIs"));
-			TRAPD(ret, iDriver->TestConeInputCapabilitiesAPIs());
-			INFO_PRINTF2(_L("...completed with return value '%d'\n"), ret);
-			TEST(ret==KErrNone);
-			RecordTestResultL();
-			break;
-			}
-		case 9:
-			{
-			SetTestStepID(_L("UIF-TCone2Step-TestSetAndGetSystemDefaultViewAPIsL"));
-			INFO_PRINTF1(_L("Test Set and Get system default view APIs"));
-			TRAPD(ret, iDriver->TestSetAndGetSystemDefaultViewAPIsL());
-			INFO_PRINTF2(_L("...completed with return value '%d'\n"), ret);
-			TEST(ret==KErrNone);
-			RecordTestResultL();
-			break;
-			}
-		case 10:
-			{
-			SetTestStepID(_L("UIF-TCone2Step-TestSetandGetCCoeControlAPIsL"));
-			INFO_PRINTF1(_L("Test Set and Get APIs for CCoeControl"));
-			TRAPD(ret, iDriver->TestSetandGetCCoeControlAPIsL());
-			INFO_PRINTF2(_L("...completed with return value '%d'\n"), ret);
-			TEST(ret==KErrNone);
-			RecordTestResultL();
-			CloseTMSGraphicsStep();
-			break;
-			}
-		case 11:
-			AutoTestManager().FinishAllTestCases(CAutoTestManager::EPass);
-			break;
-		default:
-			break;
+		{
+	case 1:
+		SetTestStepID(_L("UIF-TCone2Step-TestIsDisplayingDialogAndRemoveFromStackAPIsL"));
+		INFO_PRINTF1(_L("Test IsDisplayingDialog() and RemoveFromStack() APIs"));
+		TRAP(ret,iDriver->TestIsDisplayingDialogAndRemoveFromStackAPIsL());
+		INFO_PRINTF2(KReturn,ret);
+		TEST(ret==KErrNone);
+		RecordTestResultL();
+		break;
+	case 2:
+		SetTestStepID(_L("UIF-TCone2Step-TestMakeVisibleOnChildControlsL"));
+		INFO_PRINTF1(_L("Test makevisible on its child controls"));
+		TRAP(ret,iDriver->TestMakeVisibleOnChildControlsL());
+		INFO_PRINTF2(KReturn,ret);
+		TEST(ret==KErrNone);
+		RecordTestResultL();
+		break;
+	case 3:
+		SetTestStepID(_L("UIF-TCone2Step-TestAppHelpContextAPIL"));
+		INFO_PRINTF1(_L("Test AppHelpContext API"));
+		TRAP(ret,iDriver->TestAppHelpContextAPIL());
+		INFO_PRINTF2(KReturn,ret);
+		TEST(ret==KErrNone);
+		RecordTestResultL();
+		break;
+	case 4:
+		SetTestStepID(_L("UIF-TCone2Step-TestReadResourceAPIsL"));
+		INFO_PRINTF1(_L("Test ReadResource APIs"));
+		TRAP(ret,iDriver->TestReadResourceAPIsL());
+		INFO_PRINTF2(KReturn,ret);
+		TEST(ret==KErrNone);
+		RecordTestResultL();
+		break;
+	case 5:
+		SetTestStepID(_L("UIF-TCone2Step-TestCoeControlAPIsL"));
+		INFO_PRINTF1(_L("Test SetContainerWindow APIs"));
+		TRAP(ret,iDriver->TestCoeControlAPIsL());
+		INFO_PRINTF2(KReturn,ret);
+		TEST(ret==KErrNone);
+		RecordTestResultL();
+		break;
+	case 6:
+		SetTestStepID(_L("UIF-TCone2Step-TestColorUseAPIsL"));
+		INFO_PRINTF1(_L("Test ColorUse APIs"));
+		TRAP(ret,iDriver->TestColorUseAPIsL());
+		INFO_PRINTF2(KReturn,ret);
+		TEST(ret==KErrNone);
+		RecordTestResultL();
+		break;
+	case 7:
+		SetTestStepID(_L("UIF-TCone2Step-TestConeAppUiSimpleAndMiscAPIsL"));
+		INFO_PRINTF1(_L("Test Cone Misc APIs"));
+		TRAP(ret,iDriver->TestConeMiscAPIsL());
+		INFO_PRINTF2(KReturn,ret);
+		TEST(ret==KErrNone);
+		RecordTestResultL();
+		break;
+	case 8:
+		SetTestStepID(_L("UIF-TCone2Step-TestConeInputCapabilitiesAPIs"));
+		INFO_PRINTF1(_L("Test InputCapabilities APIs"));
+		TRAP(ret,iDriver->TestConeInputCapabilitiesAPIs());
+		INFO_PRINTF2(KReturn,ret);
+		TEST(ret==KErrNone);
+		RecordTestResultL();
+		break;
+	case 9:
+		SetTestStepID(_L("UIF-TCone2Step-TestSetAndGetSystemDefaultViewAPIsL"));
+		INFO_PRINTF1(_L("Test Set and Get system default view APIs"));
+		TRAP(ret,iDriver->TestSetAndGetSystemDefaultViewAPIsL());
+		INFO_PRINTF2(KReturn,ret);
+		TEST(ret==KErrNone);
+		RecordTestResultL();
+		break;
+	case 10:
+		SetTestStepID(_L("UIF-TCone2Step-TestSetandGetCCoeControlAPIsL"));
+		INFO_PRINTF1(_L("Test Set and Get APIs for CCoeControl"));
+		TRAP(ret,iDriver->TestSetandGetCCoeControlAPIsL());
+		INFO_PRINTF2(KReturn,ret);
+		TEST(ret==KErrNone);
+		RecordTestResultL();
+		break;
+	case 11:
+		SetTestStepID(KTest11Name);
+		INFO_PRINTF1(KTest11Desc);
+		iDriver->TestLowMemoryCoeControl();
+		INFO_PRINTF1(KFinished);
+		RecordTestResultL();
+		CloseTMSGraphicsStep();
+		break;
+	case 12:
+		AutoTestManager().FinishAllTestCases(CAutoTestManager::EPass);
+		break;
+	default:
+		break;
 		}
-
 	}
 
 /**
--- a/lafagnosticuifoundation/cone/tef/TCone2Step.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/lafagnosticuifoundation/cone/tef/TCone2Step.h	Mon Mar 15 12:41:34 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -48,12 +48,13 @@
 	{
 public:
 	DECLARE_TYPE_ID(0x10004C77)
-    void ConstructL();
+	void ConstructL();
+	TInt CreateWindow();
 private: // from CCoeControl
 	void MakeVisible(TBool aVisible);
 public:
-    TBool iDisplayed;
-    };
+	TBool iDisplayed;
+	};
 
 
 //! A CCoeControl Derived Class.\n
@@ -97,7 +98,8 @@
 	void TestConeInputCapabilitiesAPIs();
 	void TestReadResourceAPIsL();
 	void TestSetandGetCCoeControlAPIsL();
-	CTestExecuteLogger& Logger(){return iStep->Logger();};
+	void TestLowMemoryCoeControl();
+	inline CTestExecuteLogger& Logger() {return iStep->Logger();}
 private:
 	//! Handle to AppUi Class.\n
 	CCoeAppUi& iAppUi;
--- a/uifw/AknGlobalUI/AknCapServer/src/AknMemoryCardDialogImpl.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/AknCapServer/src/AknMemoryCardDialogImpl.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -19,7 +19,7 @@
 #include <aknmemorycardui.rsg>
 #include <StringLoader.h>
 #include <aknsoundsystem.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include "AknCapServerEntry.h"
 #include "AknCapServerDefs.h"
 #include "AknMemoryCardDialogImpl.h"
--- a/uifw/AknGlobalUI/NotifierWrapper/src/AknNotiferAppServerApplication.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/NotifierWrapper/src/AknNotiferAppServerApplication.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -33,7 +33,7 @@
 #include "AknNotiferAppServerApplicationInterface.h"
 
 #include <AknMediatorFacade.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <aknglobalpopupprioritycontroller.h>
 
 //---- Awkward, but declaring base classes otherwise in Akncapserver entry would break app fw.
--- a/uifw/AknGlobalUI/OldStyleNotif/Inc/AknNotifyPlugin.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/OldStyleNotif/Inc/AknNotifyPlugin.h	Mon Mar 15 12:41:34 2010 +0200
@@ -28,7 +28,7 @@
 #include <AknPanic.h>
 #include <MediatorEventProvider.h>
 #include <MediatorDomainUIDs.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 
 class CAknIndicatorData;
 
--- a/uifw/AknGlobalUI/OldStyleNotif/Inc/AknSoftNotificationPlugin.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/OldStyleNotif/Inc/AknSoftNotificationPlugin.h	Mon Mar 15 12:41:34 2010 +0200
@@ -27,7 +27,7 @@
 #include <aknstaticnotedialog.h>
 #include <AknNotifyStd.h>
 #include <AknMediatorFacade.h> // Not the best for the purpose but will do just fine.
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <AknNotify.h>
 #include "AknSystemPopup.h"
 #include "AknGroupedNotifierNote.h"
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListMsgPopup.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListMsgPopup.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -35,7 +35,7 @@
 
 #include <AknMediatorFacade.h>
 #include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
  
 #include "AknAppsKeyCleanup.inl"
 
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -32,7 +32,7 @@
 
 #include <AknMediatorFacade.h>
 #include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
  
 #include "AknAppsKeyCleanup.inl"
 
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -49,7 +49,7 @@
 #include <AknMediatorFacade.h>
 #include <aknSDData.h>
 
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <AknsUtils.h>
 #include <aknglobalpopupprioritycontroller.h>
 #include "GlobalWindowPriorities.h"
@@ -1445,7 +1445,7 @@
 
 void CAknGlobalNoteSubject::TryDisplayNextNoteL(TBool aShowAsynch)
     {
-    if ( iGlobalNoteList && iGlobalNoteList->Count() == 0 )
+    if ( !iGlobalNoteList || iGlobalNoteList->Count() == 0 )
         {
         return;
         }
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknkeylocknotifier.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknkeylocknotifier.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -33,7 +33,7 @@
 #include <aknnotecontrol.h>
 #include <aknlayoutscalable_avkon.cdl.h>
 
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <avkondomainpskeys.h> // KPSUidAvkonDomain, KAknKeyguardStatus, TAknKeyguardStatus
 #include <startupdomainpskeys.h> // KStartupSecurityCodeQueryStatus
 #include <coreapplicationuisdomainpskeys.h> // KCoreAppUIsAutolockStatus
@@ -1383,8 +1383,6 @@
     {
     if ( !iAutolockEnabled )
         {
-        iKeypadLockedNote->ShowNote( KKeyLockCustomShortTimeout,
-                                     CAknNoteDialog::ENoTone );
         }
     }
 
@@ -1397,8 +1395,6 @@
     {
     if ( !iAutolockEnabled )
         {
-        iKeypadUnlockedNote->ShowNote( KKeyLockCustomShortTimeout,
-                                       CAknNoteDialog::ENoTone );
         }
     }
 
@@ -1849,9 +1845,6 @@
     {
     if ( !iAutolockEnabled )
         {
-        iLockedNote->ShowNote( KKeyLockDisplayLockedTimeout,
-                               CAknNoteDialog::ENoTone );
-        iLockedNoteDisplayed = ETrue;
         }
     }
 
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemconfirmationpopup.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemconfirmationpopup.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -35,7 +35,7 @@
 
 #include <AknMediatorFacade.h>
 #include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 
 const TInt KCharsInTInt = 4; // TInt32 takes 4 chars.
 
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemmsgpopup.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemmsgpopup.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -34,7 +34,7 @@
 #include <aknSDData.h>
 #include <AknMediatorFacade.h>
 #include <aknnoteattributes.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include "AknAppsKeyCleanup.inl"
 
 const TInt KCharsInTInt = 4; // TInt32 takes 4 chars.
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemprogresspopup.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemprogresspopup.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -38,7 +38,7 @@
 #include <aknlayoutscalable_avkon.cdl.h>
 #include <AknMediatorFacade.h>
 #include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include "AknAppsKeyCleanup.inl"
 
 const TInt KCharsInTInt = 4; // TInt32 takes 4 chars.
--- a/uifw/AvKon/Avkon2MifHeader/mifheader.cdl.custom.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/Avkon2MifHeader/mifheader.cdl.custom.h	Mon Mar 15 12:41:34 2010 +0200
@@ -22,7 +22,7 @@
 #ifndef MIFHEADER_CDL_CUSTOM_H
 #define MIFHEADER_CDL_CUSTOM_H
 
-#include <cdlengdef.h>
+#include <CdlEngDef.h>
 #include "mifheader.cdl.common.h"
 
 namespace MifHeader
--- a/uifw/AvKon/EABI/AVKONU.DEF	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/EABI/AVKONU.DEF	Mon Mar 15 12:41:34 2010 +0200
@@ -4578,7 +4578,7 @@
 	_ZNK13CAknAppUiBase23IsSingleClickCompatibleEv @ 4577 NONAME
 	_ZN19CAknBitmapAnimation15StartAnimationLEi @ 4578 NONAME
 	_ZN14CAknPopupField19CloseSelectionListLEv @ 4579 NONAME
-	_ZN12AknListUtils13DrawSeparatorER16CGraphicsContextRK5TRectRK4TRgb @ 4580 NONAME
+	_ZN12AknListUtils13DrawSeparatorER16CGraphicsContextRK5TRectRK4TRgbP17MAknsSkinInstance @ 4580 NONAME
 	_ZN17CAknSmileyManager13SetSizeByFontEPK5CFont @ 4581 NONAME
 	_ZN17CAknSmileyManager19ConvertCodesToTextLER6TDes16 @ 4582 NONAME
 	_ZN17CAknSmileyManager19ConvertTextToCodesLER6TDes16 @ 4583 NONAME
--- a/uifw/AvKon/aknhlist/inc/akntreelistview.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/aknhlist/inc/akntreelistview.h	Mon Mar 15 12:41:34 2010 +0200
@@ -448,12 +448,9 @@
 TInt& TopIndex();
 TInt& BottomIndex();
 
-void UpdateIndexes();
-
 TInt iItemCountLimit;
 TInt iHighlightIndex;
 TInt iTopIndex;
-TInt iBottomIndex;
 
 #endif //RD_UI_TRANSITION_EFFECTS_LIST
 
@@ -866,6 +863,12 @@
      */
     void UpdateViewItemAsVisible( CAknTreeItem* aItem );
 
+    /**
+     * Updates indexes 
+     */
+	void UpdateIndexes();
+	
+	
 // from base class CCoeControl
 
     /**
@@ -1083,6 +1086,11 @@
     * Long tap detector
     */
     CAknLongTapDetector* iLongTapDetector;
+
+   /**
+    * Last visible item index
+	*/
+	TInt iBottomIndex;
     };
 
 
--- a/uifw/AvKon/aknhlist/inc/akntreenode.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/aknhlist/inc/akntreenode.h	Mon Mar 15 12:41:34 2010 +0200
@@ -181,6 +181,13 @@
      */
     void Sort();
 
+    /**
+     * Are all children marked
+     * 
+     * @return @c ETrue if all children are marked
+     */
+    TBool AllChildrenMarked();    
+    
 // from base class CAknTreeItem
 
     /**
--- a/uifw/AvKon/aknhlist/src/akntreelist.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/aknhlist/src/akntreelist.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -391,6 +391,29 @@
         {
         Window().Invalidate( View().Rect() );
         }
+    
+    // Update the marking of upper level node
+    CAknTreeItem* item = Tree().Item( aItem );
+    if ( item && item->Parent() && item->Parent()->IsNode() )
+        {
+        CAknTreeNode* node = item->Parent()->Node();
+        TBool wasMarked = node->IsMarked();
+        if ( node && node->IsMarkable() )
+            {
+            if ( node->AllChildrenMarked() )
+                {
+                node->SetMarked( ETrue );
+                }            
+            else
+                {
+                node->SetMarked( EFalse );
+                }
+            }
+        if ( wasMarked != node->IsMarked() )
+            {
+            Window().Invalidate( View().Rect() );
+            }
+        }
     }
 
 
--- a/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -389,11 +389,8 @@
                     {
                     iItemToBeSelected = item;             
                     iTreeListView->SetFocusedItem( item, ii, EFalse );
-                    // Start long tap detector 
-                    if ( !iTreeListView->HasMarkedItemsL() )
-                        {
-                        iTreeListView->LongTapPointerEventL( aPointerEvent );
-                        }
+                    // Start long tap detector
+                    iTreeListView->LongTapPointerEventL( aPointerEvent );
                     }
                 if ( ii != iTreeListView->FocusedItemIndex() )
                     {
--- a/uifw/AvKon/aknhlist/src/akntreelistview.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/aknhlist/src/akntreelistview.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006, 2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -1159,9 +1159,7 @@
     // Update scrollbars.
     UpdateScrollbars();
 
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
     UpdateIndexes();
-#endif
     AknsUtils::RegisterControlPosition( this, PositionRelativeToScreen() );
     
     TRAP_IGNORE( InitPhysicsL() );
@@ -1493,9 +1491,7 @@
     SetFocusIndex( KMinTInt );
     if ( !iItems.Count() )
         {
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
         UpdateIndexes();
-#endif
         return;
         }
 
@@ -1533,9 +1529,7 @@
             SetFocusIndex( ii );
             }
         }
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
     UpdateIndexes();
-#endif
     }
 
 
@@ -1581,9 +1575,7 @@
                 item = iterator.Next();
                 }
             }
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
         UpdateIndexes();
-#endif
         }
     else if ( itemCount && iItems.Count() )
         {
@@ -2778,8 +2770,10 @@
 
         // text color, used to draw the separator line between list items
         TRgb textColor( KRgbBlack );
-        AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), textColor, 
-            KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );
+        AknsUtils::GetCachedColor( skin,
+                                   textColor, 
+                                   KAknsIIDQsnTextColors,
+                                   EAknsCIQsnTextColorsCG6 );
 
         const TInt itemCount = iItems.Count();
         for ( TInt ii = 0; ii < itemCount; ++ii )
@@ -2823,7 +2817,7 @@
 #endif
                 if ( ii < iBottomIndex )
                     {
-                    AknListUtils::DrawSeparator( gc, tfxDrawRect, textColor );
+                    AknListUtils::DrawSeparator( gc, drawRect, textColor, skin );
                     }
 
                 TBool focused = ( IsFocused() && FocusedItem() &&
@@ -3168,10 +3162,19 @@
     {
     return iBottomIndex;
     }
-    
+
+#endif //RD_UI_TRANSITION_EFFECTS_LIST
+// ---------------------------------------------------------------------------
+// CAknTreeListView::UpdateIndexes
+// ---------------------------------------------------------------------------
+//
 void CAknTreeListView::UpdateIndexes()
     {
+#ifdef RD_UI_TRANSITION_EFFECTS_LIST
     iTopIndex = iBottomIndex = iHighlightIndex = 0;
+#else 
+    iBottomIndex = 0;
+#endif //RD_UI_TRANSITION_EFFECTS_LIST
     
     if ( iItems.Count() )
         {
@@ -3184,9 +3187,10 @@
                 }
             }
     
+#ifdef RD_UI_TRANSITION_EFFECTS_LIST
         iTopIndex = iTree.VisibleItemIndex(iItems[0].Item());
         iHighlightIndex = iTree.VisibleItemIndex(FocusedItem());
+#endif //RD_UI_TRANSITION_EFFECTS_LIST
         } 
     }
 
-#endif //RD_UI_TRANSITION_EFFECTS_LIST
--- a/uifw/AvKon/aknhlist/src/akntreenode.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/aknhlist/src/akntreenode.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -218,6 +218,27 @@
     iChild.Sort( order );
     }
 
+// ---------------------------------------------------------------------------
+// AllChildrenMarked
+// ---------------------------------------------------------------------------
+//
+TBool CAknTreeNode::AllChildrenMarked()
+    {
+    TInt count = iChild.Count();
+    TInt marked ( 0 );
+    for ( TInt ii = count - 1; ii >= 0; --ii )
+        {
+        if ( iChild[ii]->IsMarked() )
+            {
+            marked++;
+            }
+        }
+    if ( count == marked )
+        {
+        return ETrue;
+        }
+    return EFalse;
+    }
 
 // ---------------------------------------------------------------------------
 // From class CAknTreeItem.
--- a/uifw/AvKon/bwins/AVKONU.def	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/bwins/AVKONU.def	Mon Mar 15 12:41:34 2010 +0200
@@ -3452,7 +3452,7 @@
 	?IsSingleClickCompatible@CAknAppUiBase@@QBEHXZ @ 3451 NONAME ; int CAknAppUiBase::IsSingleClickCompatible(void) const
 	?StartAnimationL@CAknBitmapAnimation@@QAEXH@Z @ 3452 NONAME ; void CAknBitmapAnimation::StartAnimationL(int)
 	?CloseSelectionListL@CAknPopupField@@QAEXXZ @ 3453 NONAME ; void CAknPopupField::CloseSelectionListL(void)
-	?DrawSeparator@AknListUtils@@SAXAAVCGraphicsContext@@ABVTRect@@ABVTRgb@@@Z @ 3454 NONAME ; void AknListUtils::DrawSeparator(class CGraphicsContext &, class TRect const &, class TRgb const &)
+	?DrawSeparator@AknListUtils@@SAXAAVCGraphicsContext@@ABVTRect@@ABVTRgb@@PAVMAknsSkinInstance@@@Z @ 3454 NONAME ; void AknListUtils::DrawSeparator(class CGraphicsContext &, class TRect const &, class TRgb const &, class MAknsSkinInstance *)
 	?SetSize@CAknSmileyManager@@QAEXABVTSize@@@Z @ 3455 NONAME ; void CAknSmileyManager::SetSize(class TSize const &)
 	?DrawText@CAknSmileyManager@@QBEXAAVCWindowGc@@ABVTDesC16@@PBVCFont@@ABVTPoint@@@Z @ 3456 NONAME ; void CAknSmileyManager::DrawText(class CWindowGc &, class TDesC16 const &, class CFont const *, class TPoint const &) const
 	?NewL@CAknSmileyManager@@SAPAV1@PAVMAknSmileyObserver@@@Z @ 3457 NONAME ; class CAknSmileyManager * CAknSmileyManager::NewL(class MAknSmileyObserver *)
Binary file uifw/AvKon/conf/s60/avkon.confml has changed
Binary file uifw/AvKon/conf/s60/avkon_101F876E.crml has changed
--- a/uifw/AvKon/group/avkon.mmp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/group/avkon.mmp	Mon Mar 15 12:41:34 2010 +0200
@@ -347,7 +347,7 @@
 LIBRARY         HWRMLightClient.lib
 LIBRARY         aiwdialdata.lib
 
-DEFFILE AVKON.DEF
+DEFFILE AVKON.def
 
 START WINS
     baseaddress     0x7dc00000
--- a/uifw/AvKon/inc/AknAdaptiveSearchGrid.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/inc/AknAdaptiveSearchGrid.h	Mon Mar 15 12:41:34 2010 +0200
@@ -100,15 +100,6 @@
          */
          void HandleResourceChange( TInt aType );
                 
-        /**
-         * From CCoeControl.
-         * Retrieves an object of the same type as that encapsulated in aId.
-         *
-         * @param aId An encapsulated object type ID.
-         * @return Encapsulated pointer to the object provided. 
-         *      Note that the encapsulated pointer may be NULL.
-         */
-         TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
                  
         /**
          * From MCoeControlObserver.
@@ -200,12 +191,6 @@
          */
 	 	 void SetButtonGridChars( const TDesC& aGridChars );
 		
-		/**
-		 * Sets text into search field.
-		 * 		 
-		 * @param const aSearchTxt Reference to the text buffer.
-         */            
-	     void SetSearchTextToFindPane( const TDesC& aSearchTxt );
 		
 		/**
          * Initiates buttons for adaptive search grid        
@@ -363,9 +348,6 @@
         CEikEdwin* iEditor;         
         TInt iTextLimit;     
 	    
-	    // skin context for find pane
-   	    CAknsListBoxBackgroundControlContext* iSkinContextOfFindPane;   	
-   	    CAknsFrameBackgroundControlContext* iBgContextOfFindPane; 
    	    	    	       	    
    	    // contex for control pane   
    	    CAknsBasicBackgroundControlContext* iBgContextOfControlPane;    	     
--- a/uifw/AvKon/inc/AknPreviewPopUp.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/inc/AknPreviewPopUp.h	Mon Mar 15 12:41:34 2010 +0200
@@ -242,6 +242,10 @@
         
         // It is true when user clicks the popup, transfer pointer up event to its child control
         TBool iAllowUpEvent;
+        
+        // Used to remember the local variable address which used to be
+        // mark whether this object is deleted
+        TBool * iIsDeleted;
 
     };
 
--- a/uifw/AvKon/inc/AknSignalIcon.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/inc/AknSignalIcon.h	Mon Mar 15 12:41:34 2010 +0200
@@ -179,6 +179,15 @@
     */
     void ConstructL();
 
+    /**
+    * Loads the AT&T signal icon to be displayed.
+    * 
+    * @param  aIconState       ID of the signal state, @see signal indicator
+    *                          states in @c avkon.hrh.
+    * @param  aIconColorIndex  Color index of the icon.
+    */
+    void LoadATTIconL( TInt aIconState, TInt aIconColorIndex );
+    
 private:
     
     /**
@@ -207,6 +216,9 @@
     
     /** Flag defining whether or not the offline icon is drawn. */
     TBool       iShowOffLineIcon;
+    
+	/** Flag defining whether or not the ATT is enable. */
+    TInt        iATTEnable;
     };
 
 #endif // AKNSIGNALICON_H
--- a/uifw/AvKon/notifsrc/AknSDData.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/notifsrc/AknSDData.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <s32mem.h>
 #include "aknSDData.h"
 
--- a/uifw/AvKon/notifsrc/aknNotify.mmp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/notifsrc/aknNotify.mmp	Mon Mar 15 12:41:34 2010 +0200
@@ -64,7 +64,7 @@
 LIBRARY    akntransitionutils.lib
 #endif
 
-DEFFILE AKNNOTIFY.DEF
+DEFFILE AknNotify.DEF
 
 START WINS
     BASEADDRESS 0x7dd30000
--- a/uifw/AvKon/src/AknAdaptiveSearch.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknAdaptiveSearch.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -257,7 +257,6 @@
 			TBuf<KAknStringBufferSize> criteria;
             if ( iSearchField->Editor().SelectionLength() > 0 )
                 {
-                iAdaptiveSearchGrid->SetSearchTextToFindPane( criteria );
                 iSearchField->SetSearchTextL( criteria );
                 iSearchField->HandleControlEventL( iSearchField, EEventStateChanged );
                 }
@@ -288,13 +287,8 @@
 					{
 					criteria = criteria.Mid( 0, (length-1) );		
 					}					
-				// Update the AS search field first to be ready for redraw
-				iAdaptiveSearchGrid->SetSearchTextToFindPane( criteria );				
                 iSearchField->SetSearchTextL( criteria );   
                 iSearchField->HandleControlEventL( iSearchField, EEventStateChanged );      
-				iSearchField->SetFocus( EFalse );		        			
-				iSearchField->MakeVisible ( EFalse );
-				iAdaptiveSearchGrid->SetSearchTextToFindPane( criteria );	
 				iSearchField->DrawNow();
 				if( iAdaptiveSearchTextObserver )
 					{
@@ -356,12 +350,8 @@
     	if ( IsIndicIndependentChar( criteria[length-1] ) )
         	criteria.Append( KLitHyphen );
         	
-      	// Update the AS search field first to be ready for redraw
-        iAdaptiveSearchGrid->SetSearchTextToFindPane( criteria );       
         iSearchField->SetSearchTextL( criteria );   
         iSearchField->HandleControlEventL( iSearchField, EEventStateChanged );      
-    	iSearchField->SetFocus( EFalse );    	
-    	iSearchField->MakeVisible ( EFalse );
         iSearchField->DrawNow();
         if( iAdaptiveSearchTextObserver )
         	{
@@ -450,47 +440,7 @@
 void CAknAdaptiveSearch::InvertAdaptiveSearchGridVisibilityL( TBool aSelectAll )
 	{
 	 _AKNTRACE_FUNC_ENTER;
-	// update the search text here if showing
-	TInt textLength = 0;
-	if( !iAdaptiveSearchGrid->IsShown() && &(iSearchField->Editor()) )
-	    {
-	    textLength = iSearchField->Editor().TextLength();
-	    HBufC* searchText = NULL;
-	    TPtrC finalText( KNullDesC );
-	    if( textLength > 0 )
-	        {
-	        TRAP_IGNORE( searchText = iSearchField->Editor().GetTextInHBufL() );
-    	    if( searchText )
-    	        {
-    	        finalText.Set( *searchText ); // set the value
-    	           _AKNDEBUG(
-    	                    _LIT( KClassName, "CAknAdaptiveSearch" );
-    	                    _LIT( KFunctionName, "InvertAdaptiveSearchGridVisibilityL" );
-    	                    _LIT( KFormat, "[%S][%S] Final text is: %S");
-    	                    _AKNTRACE( KFormat, 
-    	                    &KClassName, &KFunctionName, &finalText );
-    	                    );
-    	        }
-	        }	    
-    	iAdaptiveSearchGrid->SetSearchTextToFindPane( finalText );    
-    	if( searchText )
-    	    {
-    	    delete searchText;
-    	    searchText = NULL;
-    	    }
-	    }
-	TBool shown( !(iAdaptiveSearchGrid->IsShown()) );
-	if ( shown )
-	    {
-	    iSearchField->SetFocus( EFalse );	 
-	    iSearchField->MakeVisible( EFalse );   
-	    }
-	else
-	    {
-	    iSearchField->Editor().RemoveFlagFromUserFlags( CEikEdwin::EAvkonDisableVKB );
-	    iSearchField->MakeVisible( ETrue );      
-	    iSearchField->SetFocus( ETrue );	         
-	    }
+	    TBool shown ( !iAdaptiveSearchGrid->IsShown() );
     iAdaptiveSearchGrid->SetVisibilityL( shown, aSelectAll );
     _AKNTRACE_FUNC_EXIT;
 	}
--- a/uifw/AvKon/src/AknAdaptiveSearchGrid.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknAdaptiveSearchGrid.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -124,21 +124,12 @@
     { 
     _AKNTRACE_FUNC_ENTER;
     CEikonEnv::Static()->EikAppUi()->RemoveFromStack( this );
-    delete iBgContextOfFindPane;
     delete iBgContextOfControlPane;
-    delete iSkinContextOfFindPane; 
-    delete iInputFrame;
  
     // Clear current region of AS
     iCurrentRegion.Clear();    
     iButtonArray.ResetAndDestroy();
     
-    if ( iEditor )
-        {
-        TRAP_IGNORE(iEditor->TextView()->SetCursorVisibilityL( 
-            TCursor::EFCursorInvisible, TCursor::EFCursorInvisible ));
-        delete iEditor;
-        }   
     if( iGridChars )
         {
         delete iGridChars;
@@ -197,20 +188,12 @@
             Window().SetBackgroundColor(~0);
             }
         }        
+    Window().SetPointerGrab( ETrue );
 
     CAknWsEventMonitor* eventMonitor = iAppUi->EventMonitor();    
     eventMonitor->AddObserverL( this );
     eventMonitor->Enable();
     
-    iSkinContextOfFindPane = CAknsListBoxBackgroundControlContext::NewL( KAknsIIDQsnBgAreaControlPopup, 
-                                                                         TRect(0,0,0,0), 
-                                                                         EFalse, 
-                                                                         KAknsIIDNone, 
-                                                                         TRect(0,0,0,0) );   
-    iBgContextOfFindPane = CAknsFrameBackgroundControlContext::NewL( KAknsIIDQsnFrInput, 
-                                                                     TRect(0,0,0,0), 
-                                                                     TRect(0,0,0,0), 
-                                                                     EFalse );    
     iBgContextOfControlPane = CAknsBasicBackgroundControlContext::NewL( KAknsIIDQgnGrafAdaptSearchPageBg, 
                                                                         TRect(0,0,0,0), EFalse );          
     // Init components
@@ -277,59 +260,6 @@
             flags |= CAknInputFrame::EFixedFindWithoutLine;
             break;
         }
-    iEditor = new (ELeave) CEikEdwin;   
-    
-    iInputFrame = CAknInputFrame::NewL( iEditor, 
-                                        EFalse, 
-                                        KAvkonBitmapFile, 
-                                        EMbmAvkonQgn_indi_find_glass, 
-                                        EMbmAvkonQgn_indi_find_glass_mask, 
-                                        flags );                     
-
-    iEditor->SetContainerWindowL( *this );
-    iInputFrame->SetContainerWindowL( *this );
-    
-    AknEditUtils::ConstructEditingL( iEditor,
-                                     iTextLimit,
-                                     1,
-                                     EAknEditorCharactersLowerCase,
-                                     EAknEditorAlignLeft,
-                                     EFalse,
-                                     ETrue,
-                                     EFalse );
-    iEditor->SetObserver( this );
-    iEditor->SetBorder( TGulBorder::ENone );
-    iEditor->SetAknEditorInputMode( EAknEditorTextInputMode );
-    iEditor->SetAknEditorAllowedInputModes( EAknEditorTextInputMode |
-                                            EAknEditorNumericInputMode ); 
-    iEditor->AddFlagToUserFlags( CEikEdwin::EAvkonDisableVKB );
-    
-    if ( FeatureManager::FeatureSupported( KFeatureIdJapanese ) )
-        {
-        iEditor->SetAknEditorPermittedCaseModes( EAknEditorCharactersLowerCase );
-        }
-
-    TInt editorFlags = EAknEditorFlagNoT9 | 
-                       EAknEditorFlagNoLRNavigation |
-                       EAknEditorFlagForceTransparentFepModes |
-                       EAknEditorFlagNoEditIndicators |
-                       EAknEditorFlagFindPane;
-
-    iEditor->SetAknEditorFlags( editorFlags );
-    iEditor->CreateTextViewL(); 
-
-    iInputFrame->SetInputContext( iBgContextOfFindPane );
-    iEditor->SetSkinBackgroundControlContextL( iBgContextOfFindPane );
-  
-    TRgb textColor = KRgbBlack;
-    TInt error = AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), 
-                                            textColor, 
-                                            KAknsIIDQsnTextColors, 
-                                            EAknsCIQsnTextColorsCG19);
-    if( !error )
-        {
-        TRAP_IGNORE( AknLayoutUtils::OverrideControlColorL(*iEditor, EColorLabelText, textColor) );       
-        }   
     
     // Create label for page indicator
     iPageIndicator = new (ELeave) CEikLabel;
@@ -652,59 +582,17 @@
     }
 
 // -----------------------------------------------------------------------------
-// CAknAdaptiveSearchGrid::MopSupplyObject
-// Retrieves an object of the same type as that encapsulated in aId.
-// -----------------------------------------------------------------------------
-//    
-TTypeUid::Ptr CAknAdaptiveSearchGrid::MopSupplyObject( TTypeUid aId )
-    {
-    if ( aId.iUid == MAknsControlContext::ETypeId && iSkinContextOfFindPane )
-        {
-        return MAknsControlContext::SupplyMopObject( aId, iSkinContextOfFindPane );
-        }
-    return MAknsControlContext::SupplyMopObject( aId, NULL );
-    }
-
-// -----------------------------------------------------------------------------
 // CAknAdaptiveSearchGrid::CountComponentControls
 // Gets the number of controls contained in a compound control.
 // -----------------------------------------------------------------------------
 //   
 TInt CAknAdaptiveSearchGrid::CountComponentControls() const
     {
-    // buttons + controls + search field ( editor, input frame )    
-    return iButtonArray.Count()+5+2; 
+    // buttons + controls    
+    return iButtonArray.Count()+5;
     } 
 
 // -----------------------------------------------------------------------------
-// Sets text into search field.
-// Gets one parameters:
-// const TDesC& aSearchTxt      - Reference to the text buffer.
-// -----------------------------------------------------------------------------      
-//                   
-void CAknAdaptiveSearchGrid::SetSearchTextToFindPane( const TDesC& aSearchTxt )
-    { 
-    _AKNDEBUG(
-               _LIT( KClassName, "CAknAdaptiveSearchGrid" );
-               _LIT( KFunctionName, "SetSearchTextToFindPane" );
-               _LIT( KFormat, "[%S][%S] search text is: %S");
-               _AKNTRACE( KFormat, 
-               &KClassName, &KFunctionName, &aSearchTxt );
-               );
-
-    TRAP_IGNORE( iEditor->SetTextL( &aSearchTxt ) );
-    if ( iShown )
-        {
-        TRAP_IGNORE(iEditor->TextView()->SetCursorVisibilityL( TCursor::EFCursorFlashing,
-                                                           TCursor::EFCursorFlashing ));
-        }
-    TInt curPos = iEditor->TextLength(); 
-    //This set selection all off
-    TRAP_IGNORE( iEditor->SetSelectionL( curPos, curPos ) ); 
-    iEditor->DrawNow();
-    } 
-    
-// -----------------------------------------------------------------------------
 // CAknAdaptiveSearchGrid::ComponentControlh
 // Gets the specified component of a compound control.
 // -----------------------------------------------------------------------------
@@ -729,10 +617,6 @@
                 return iDeleteButton;
             case 4:
                 return iPageIndicator;
-            case 5:
-                return iInputFrame; 
-            case 6:
-                return iEditor;                             
             default:
                 return NULL;
             }
@@ -753,16 +637,6 @@
         SetFocus( ETrue);  
         iCurrentPage = 1;
         ShowL();
-        if ( iEditor )
-            {
-            iEditor->SetFocus( ETrue );
-            TInt curPos = iEditor->TextLength(); 
-            iEditor->SetCursorPosL( curPos, EFalse );
-            if ( aSelectAll) 
-                {
-                iEditor->SelectAllL();
-                }
-            }    
         }
     else
         {
@@ -849,20 +723,6 @@
     TRect cell_pane; 
     
     TRect grid_pane = RectFromLayout( Rect(), AknLayoutScalable_Apps::grid_afind_pane( iLayoutOption ) );   
-    TRect find_pane; 
-     
-    if(iPopupFindpane)
-        {
-        find_pane = RectFromLayout( Rect(), AknLayoutScalable_Avkon::popup_find_window() );
-        }
-    else
-        {
-        find_pane = RectFromLayout( Rect(), AknLayoutScalable_Apps::find_pane_cp01( iLayoutOption ) );
-      	} 
-    _AKNTRACE( "[%s][%s] rect of find pane is %d %d %d %d ", "CAknAdaptiveSearchGrid", __FUNCTION__,
-    		find_pane.iTl.iX, find_pane.iTl.iY, find_pane.iBr.iX, find_pane.iBr.iY );   
-    iInputFrame->SetRect( find_pane ); 
-    iSkinContextOfFindPane->SetRect( find_pane );        
    
     // Backspace and close buttons
     cell_pane = RectFromLayout( grid_pane, AknLayoutScalable_Apps::cell_afind_pane(iLayoutOption, iNumOfCols-2, iNumOfRows-1) );        
@@ -1128,8 +988,6 @@
         }
     iCloseButton->MakeVisible( ETrue );
     iDeleteButton->MakeVisible( ETrue );
-    iInputFrame->MakeVisible( ETrue ); 
-    iEditor->MakeVisible( ETrue );
     }
     
 // -----------------------------------------------------------------------------
@@ -1237,10 +1095,6 @@
         {
         return;
         }  
-  
-    iEditor->TextView()->SetCursorVisibilityL( 
-        TCursor::EFCursorInvisible, TCursor::EFCursorInvisible);
-            
     SetFocus( EFalse );
     //fix for TSW error EKDN-7KW9P2
     SetShown( EFalse );
@@ -1267,8 +1121,6 @@
         }      
     if ( !IsFocused() && iLastFocusedButton )               
         iLastFocusedButton->ResetState();        
-    
-    iInputFrame->SetFocus( IsFocused(), aDrawNow );
     }        
         
 
@@ -1297,8 +1149,8 @@
         
         if( pointerEvent.iType == TPointerEvent::EButton1Down ) 
             {     
-             if( iInputFrame->Rect().Contains(pointerEvent.iPosition) || 
-                aDestination != this )
+        if ( !iFindpaneRect.Contains( pointerEvent.iPosition ) &&
+            aDestination != this )     
                 {  
             MTouchFeedback* feedback = MTouchFeedback::Instance();
             
@@ -1628,10 +1480,6 @@
         _AKNTRACE( "[%s][%s] rect of close button is %d %d %d %d ", "CAknAdaptiveSearchGrid", __FUNCTION__,
                            		button_rect.iTl.iX, button_rect.iTl.iY, button_rect.iBr.iX, button_rect.iBr.iY );
         iCurrentRegion.AddRect( button_rect );
-        button_rect = iInputFrame->Rect();
-        _AKNTRACE( "[%s][%s] rect of Input Frame is %d %d %d %d ", "CAknAdaptiveSearchGrid", __FUNCTION__,
-                                   		button_rect.iTl.iX, button_rect.iTl.iY, button_rect.iBr.iX, button_rect.iBr.iY );
-        iCurrentRegion.AddRect( button_rect );
         if( iNumOfPages > 1 )
             {
             TRect page_pane;       
@@ -1793,10 +1641,6 @@
 //
 void CAknAdaptiveSearchGrid::SaveFindPaneRect( const TRect &aRect )
     {
-    //Now we just deal with the landscape conditions
-    if ( !Layout_Meta_Data::IsLandscapeOrientation() )
-        return;
-    
     //When width is zero, no need to deal with.
     if ( 0 == aRect.Size().iWidth )
         return;
--- a/uifw/AvKon/src/AknAppUi.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknAppUi.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -69,7 +69,7 @@
 #include <gfxtranseffect/gfxtranseffect.h>
 
 #include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <startupdomainpskeys.h>
 
 #include "transitionmanager.h"
--- a/uifw/AvKon/src/AknCharMap.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknCharMap.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -3973,6 +3973,9 @@
     {
     if (aType == KEikDynamicLayoutVariantSwitch)
         {
+    
+        SetSmileyAnimationActivityInCurrentPageL(EFalse);
+        
         TInt cursorIndexBeforeSwitch = (iFirstVisibleRow + iCursorPos.iY) * iMaxColumns + iCursorPos.iX;
         TInt recentLengthBeforeSwitch = iMaxColumns;
         TBool recentWasSetBeforeSwitch = iSetRecentSct;
@@ -3988,6 +3991,9 @@
 
         // Sets the character case because the buffer content may have changed.
         SetCharacterCaseL(iSpecialCharCase);
+		
+        SetSmileyAnimationActivityInCurrentPageL(ETrue);
+		
         TInt cursorIndexAfterSwitch;
         if ( !iExtension->iKeyBrdEvent )
             {
--- a/uifw/AvKon/src/AknForm.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknForm.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -231,9 +231,18 @@
 			else
 				{
 				if ( mayExitEditMode )
-					SetEditableL(EFalse); // go out of edit mode of Form 
+                    {
+                    SetEditableL( EFalse ); // go out of edit mode of Form
+                    CEikCaptionedControl* line = Line( IdOfFocusControl() );
+                    if ( line )
+                        {
+                        line->SetEditableL( EFalse );
+                        line->SetCurrent( EFalse );
+                        line->DrawDeferred(); // otherwise will be partly redrawn
+                        }
+                    }
 				return EFalse; // remain in form ( but in view mode if save was OK).
-			}
+                }
 
 			} // end of if (IsEditable())
 
--- a/uifw/AvKon/src/AknIndicatorContainer.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknIndicatorContainer.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -835,7 +835,23 @@
 
 EXPORT_C TInt CAknIndicatorContainer::CountComponentControls() const
     {
-    return (iIndicatorsShown);
+    TInt n = CountShownIndicator();
+    //__ASSERT_DEBUG ( n == iIndicatorsShown, User::Panic(_L( "indicatorshow"),n ) );
+    return n;
+    }
+
+TInt CAknIndicatorContainer::CountShownIndicator() const
+    {
+    TInt count = iIndicators->Count();
+    TInt indicatorShown = 0;
+    for ( TInt i = 0; i< count; i++ )
+        {
+        if( iIndicators->At(i)->IndicatorState() && iIndicators->At( i )->Priority() != KIndicatorNotShown )
+            {
+            indicatorShown++;
+            }
+        }
+    return indicatorShown;
     }
 
 
@@ -863,11 +879,17 @@
     }
 
 
-EXPORT_C void CAknIndicatorContainer::Draw( const TRect& /*aRect*/ ) const
+EXPORT_C void CAknIndicatorContainer::Draw( const TRect& aRect ) const
     {
     if ( iExtension->iStatusPane && 
          iExtension->iStatusPane->IsTransparent() )
         {
+        CWindowGc& gc = SystemGc();
+        TRgb rgb(TRgb::Color16MA(0));
+        gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
+        gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+        gc.SetBrushColor(rgb);
+        gc.Clear(aRect);
         return;
         }
 
@@ -1191,30 +1213,29 @@
         return;
         }
 
-    CAknIndicator* temp;
-    for(TInt ii = 1; ii < count; ii++)
+    // Bubble sorted
+    for (TInt i = 0; i < ( count - 1 ); i++)
         {
-        temp = iIndicators->At(ii);
-        TInt tempPriority = temp->Priority();
-        if (tempPriority >= 0)
+        TBool swaped = EFalse;
+        for (TInt j = count - 1; j > i; j--)
             {
-            for(TInt jj = 0; jj <= ii; jj++)
+            if ( iIndicators->At( j )->Priority()
+                    < iIndicators->At( j - 1 )->Priority() )
                 {
-                if (tempPriority < iIndicators->At(jj)->Priority())
-                    {
-                    iIndicators->Delete( ii );
-                    CleanupStack::PushL( temp );
-                    iIndicators->InsertL( jj, temp );
-                    CleanupStack::Pop( temp );
-                    break;
-                    }
-                else if ( jj == (ii-1) )
-                    {
-                    break;
-                    }
+                CAknIndicator* temp = iIndicators->At( j );
+                iIndicators->Delete( j );
+                CleanupStack::PushL( temp );
+                iIndicators->InsertL( j - 1, temp );                
+                CleanupStack::Pop( temp );
+                swaped = ETrue;
                 }
             }
+        if( !swaped )
+            {
+            break;
+            }
         }
+
     }
 
 
@@ -2973,8 +2994,7 @@
                     {
                     if ( extendedFlatLayout )
                         {
-                        indicatorLayout =
-                            AknLayoutScalable_Avkon::indicator_nsta_pane_cp_g4( 0 );
+                        showIndicator = EFalse;
                         }
                     else
                         {
@@ -2987,8 +3007,7 @@
                     {
                     if ( extendedFlatLayout )
                         {
-                        indicatorLayout =
-                            AknLayoutScalable_Avkon::indicator_nsta_pane_cp_g5( 0 );
+                        showIndicator = EFalse;
                         }
                     else
                         {
@@ -3001,8 +3020,7 @@
                     {
                     if ( extendedFlatLayout )
                         {
-                        indicatorLayout =
-                            AknLayoutScalable_Avkon::indicator_nsta_pane_cp_g6( 0 );
+                        showIndicator = EFalse;
                         }
                     else
                         {
--- a/uifw/AvKon/src/AknPopupSettingPage.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknPopupSettingPage.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -44,7 +44,7 @@
 #include <aknlistboxtfxinternal.h>
 #endif //RD_UI_TRANSITION_EFFECTS_LIST
 
-#include <aknpriv.hrh>
+#include <AknPriv.hrh>
 
 // ----------------------------------------------------------------------------
 // Extension class definition
--- a/uifw/AvKon/src/AknPreviewPopUp.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknPreviewPopUp.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -67,7 +67,8 @@
     : iContent( aContent ),
       iController( aController ),
       iFlags( aStyle ),
-      iAllowUpEvent(EFalse)
+      iAllowUpEvent(EFalse),
+      iIsDeleted(0)
     {
     GfxTransEffect::Register( this, KGfxPreviewPopupControlUid );
     }
@@ -79,6 +80,12 @@
 CAknPreviewPopUp::~CAknPreviewPopUp()
     {
     AKNTASHOOK_REMOVE();
+    
+    if( iIsDeleted )
+        {
+    	*iIsDeleted = ETrue ;
+        iIsDeleted = 0 ;
+        }
 
     GfxTransEffect::Deregister( this );
 
@@ -509,6 +516,9 @@
 //
 void CAknPreviewPopUp::HandlePointerEventL( const TPointerEvent& aPointerEvent )
     {
+	TBool isDelete = EFalse; 
+	iIsDeleted = &isDelete;
+	
     if ( AknLayoutUtils::PenEnabled() )
         {
         iCloseMenu = EFalse;
@@ -522,6 +532,10 @@
             {
             iAllowUpEvent = ETrue;
             CCoeControl::HandlePointerEventL( aPointerEvent );
+            if( isDelete )
+            	{
+            	return;
+            	}
             if ( !( iFlags & CAknPreviewPopUpController::EPermanentMode ) && aPointerEvent.iType == TPointerEvent::EButton1Up && IsVisible() )
                 {
             	  // if pointer up is already redirected to the content, but the popup is still visible,
@@ -593,6 +607,10 @@
                     (aPointerEvent.iType == TPointerEvent::EButton1Up && iAllowUpEvent ) )
                     {
                     CCoeControl::HandlePointerEventL( aPointerEvent );
+                    if( isDelete )
+                    	{
+                    	return;
+                    	}
                     }
                 }
             else
@@ -601,6 +619,10 @@
                     aPointerEvent.iType == TPointerEvent::EButtonRepeat )
                     {
                     CCoeControl::HandlePointerEventL( aPointerEvent );
+                    if( isDelete )
+                    	{
+                    	return;
+                    	}
                     }
                 }
                 
@@ -610,6 +632,8 @@
             iAllowUpEvent = EFalse;
             }
         }
+    
+    iIsDeleted = 0;
     }
     
 // -----------------------------------------------------------------------------
--- a/uifw/AvKon/src/AknSignalIcon.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknSignalIcon.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -24,6 +24,9 @@
 #include <avkon.mbg>
 
 #include <AknTasHook.h>
+#include <AvkonInternalCRKeys.h>
+#include <centralrepository.h> 
+
 #include "AknSignalIcon.h"
 #include "aknconsts.h"
 #include "AknUtils.h"
@@ -162,6 +165,93 @@
 	return iColorIndex;	
 	}
 
+void CAknSignalIcon::LoadATTIconL(TInt aIconState, 
+                                  TInt aIconColorIndex )
+    {
+    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+    CFbsBitmap* bitmap      = NULL;
+    CFbsBitmap* mask        = NULL;
+    
+    switch ( aIconState )
+        {
+        case EAknSignalHsdpaIndicatorAvailable:
+            AknsUtils::CreateColorIconL( skin,
+                                         KAknsIIDQgnIndiSignalWcdmaIcon,
+                                         KAknsIIDQsnIconColors,
+                                         aIconColorIndex,
+                                         bitmap,
+                                         mask,
+                                         AknIconUtils::AvkonIconFileName(), 
+                                         EMbmAvkonQgn_indi_signal_wcdma_icon,
+                                         EMbmAvkonQgn_indi_signal_wcdma_icon_mask,
+                                         KRgbGray );
+            break;
+        case EAknSignalHsdpaIndicatorAttached:
+        case EAknSignalHsdpaIndicatorEstablishingContext: 
+            AknsUtils::CreateColorIconL( skin,
+                                         KAknsIIDQgnIndiSignalWcdmaAttach,
+                                         KAknsIIDQsnIconColors,
+                                         aIconColorIndex,
+                                         bitmap,
+                                         mask, 
+                                         AknIconUtils::AvkonIconFileName(), 
+                                         EMbmAvkonQgn_indi_signal_wcdma_attach,
+                                         EMbmAvkonQgn_indi_signal_wcdma_attach_mask,
+                                         KRgbGray );
+            break;
+        case EAknSignalHsdpaIndicatorContext:
+            AknsUtils::CreateColorIconL( skin,
+                                         KAknsIIDQgnIndiSignalWcdmaContext,
+                                         KAknsIIDQsnIconColors,
+                                         aIconColorIndex,
+                                         bitmap,
+                                         mask, 
+                                         AknIconUtils::AvkonIconFileName(), 
+                                         EMbmAvkonQgn_indi_signal_wcdma_context,
+                                         EMbmAvkonQgn_indi_signal_wcdma_context_mask,
+                                         KRgbGray );
+            break;
+        case EAknSignalHsdpaIndicatorMultipdp:
+            AknsUtils::CreateColorIconL( skin,
+                                         KAknsIIDQgnIndiSignalWcdmaMultipdp,
+                                         KAknsIIDQsnIconColors,
+                                         aIconColorIndex,
+                                         bitmap,
+                                         mask,
+                                         AknIconUtils::AvkonIconFileName(), 
+                                         EMbmAvkonQgn_indi_signal_wcdma_multipdp,
+                                         EMbmAvkonQgn_indi_signal_wcdma_multipdp_mask,
+                                         KRgbGray );
+            break;
+        case EAknSignalHsdpaIndicatorSuspended:
+            AknsUtils::CreateColorIconL( skin,
+                                         KAknsIIDQgnIndiSignalWcdmaSuspended,
+                                         KAknsIIDQsnIconColors,
+                                         aIconColorIndex,
+                                         bitmap,
+                                         mask, 
+                                         AknIconUtils::AvkonIconFileName(), 
+                                         EMbmAvkonQgn_indi_signal_wcdma_suspended,
+                                         EMbmAvkonQgn_indi_signal_wcdma_suspended_mask,
+                                         KRgbGray ); 
+            break;
+        }
+    if ( bitmap )
+        {
+        delete iSignalIcon;
+        iSignalIcon = bitmap;
+        AknIconUtils::SetSize( iSignalIcon, Size() );
+        }
+
+    if ( mask )
+        {
+        delete iSignalIconMask;
+        iSignalIconMask = mask;
+        }
+
+    iIconState  = aIconState;
+    iColorIndex = aIconColorIndex;
+    }
 // ---------------------------------------------------------------------------
 // CAknSignalIcon::LoadIconL
 // ---------------------------------------------------------------------------
@@ -182,6 +272,8 @@
     CFbsBitmap* bitmap      = NULL;
     CFbsBitmap* mask        = NULL;
 
+    TBool isHsdpa = ( aIconState >= EAknSignalHsdpaIndicatorAvailable
+                    && aIconState <= EAknSignalHsdpaIndicatorMultipdp );
     if ( iOffLine )
         {
         // Offline mode is not an actual signal state in the signal icon
@@ -200,6 +292,11 @@
         }
     else
         {
+        if( iATTEnable && isHsdpa)
+            {
+            LoadATTIconL( aIconState, aIconColorIndex );
+            return;
+            }
         switch( aIconState )
             {
             // Old legacy GPRS icons.
@@ -678,6 +775,17 @@
 //
 void CAknSignalIcon::ConstructL()
 	{
+	CRepository* repo = CRepository::NewL( KCRUidAvkon );
+
+    TInt aTTEnabled = EFalse;
+    iATTEnable = EFalse;
+    TInt crErr = repo->Get( KAknATTSignalIconEnable, aTTEnabled );
+    if ( crErr == KErrNone )
+        {
+        iATTEnable = aTTEnabled;
+        }
+    delete repo;
+    repo = NULL;
 	}
 
 //  End of File  
--- a/uifw/AvKon/src/AknSmileyModel.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknSmileyModel.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -707,7 +707,7 @@
     while(ptr.Length())
         {
         TInt i = 0;
-        for(; i<aText.Length(); i++) // find next smiley code
+        for(; i<ptr.Length(); i++) // find next smiley code
             {
             if(IsSmiley(ptr[i]))
                 {
--- a/uifw/AvKon/src/AknTextSettingPage.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/AknTextSettingPage.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -227,6 +227,7 @@
 	iBackupText = iText.AllocL();
 	CEikEdwin* editor = TextControl();
 
+	editor->EnableKineticScrollingL( ETrue );
 	// Inhibit predictive text entry unless allowed by API
 	if ( !(iTextSettingPageFlags & EPredictiveTextEntryPermitted) )
 		editor->SetAknEditorFlags( EAknEditorFlagNoT9 | editor->AknEdwinFlags() );
--- a/uifw/AvKon/src/aknbattery.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/aknbattery.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -104,7 +104,7 @@
     iBatteryStrengthControl->SetContainerWindowL( *this );
     iPrivateFlags = 0; // reset flags
     iDataObserver = new (ELeave) CAknBatteryDataObserver( this );
-    iIsActiveIdle = AknStatuspaneUtils::IsActiveIdle();
+    iStatusPane = CEikStatusPaneBase::Current();
     
     MTouchFeedback* feedback = MTouchFeedback::Instance();
     if ( feedback )
@@ -394,11 +394,17 @@
 // Draws the battery pane.
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void CAknBatteryPane::Draw( const TRect& /*aRect*/ ) const
+EXPORT_C void CAknBatteryPane::Draw( const TRect& aRect ) const
     {
     if ( iStatusPane && 
          iStatusPane->IsTransparent() )
         {
+        CWindowGc& gc = SystemGc();
+        TRgb rgb(TRgb::Color16MA(0));
+        gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
+        gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+        gc.SetBrushColor(rgb);
+        gc.Clear(aRect);
         return;
         }
         
--- a/uifw/AvKon/src/aknchoicelist.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/aknchoicelist.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -165,7 +165,8 @@
 */
 NONSHARABLE_CLASS( CAknChoiceListPopup ) : public CCoeControl,
                   public MEikListBoxObserver,                  
-                  MEikCommandObserver
+                  MEikCommandObserver,
+                  public MCoeForegroundObserver
     {
 public:      
     CAknChoiceListPopup() : iIndex( -1 ), iCancelled( EFalse )
@@ -245,6 +246,8 @@
             iAvkonAppUi->RemoveFromStack( this );
             iEikonEnv->BringForwards( EFalse );
             AknGlobalPopupPriorityController::ShowPopup(*this, EFalse);
+            DrawableWindow()->SetNonFading( EFalse );
+            iCoeEnv->RemoveForegroundObserver( *this );
             
             if ( AknLayoutUtils::PenEnabled() )
                 {
@@ -391,7 +394,9 @@
         iEikonEnv->BringForwards( ETrue );
         DrawableWindow()->SetOrdinalPosition( 0 );    
         AknGlobalPopupPriorityController::ShowPopup(*this, ETrue);
-        
+        DrawableWindow()->SetNonFading( ETrue );
+        iCoeEnv->AddForegroundObserverL( *this );
+       
         // this will fix possibly corrupted index        
         if ( iIndex < iList->Model()->ItemTextArray()->MdcaCount() && iIndex >= 0 )
             {
@@ -481,6 +486,15 @@
             }
         return EKeyWasNotConsumed;          
         }
+    
+    void HandleGainingForeground()
+        {
+        }
+
+    void HandleLosingForeground()
+        {
+        CloseChoiceList();   
+        }
 
 private:
 
--- a/uifw/AvKon/src/akncolourselectiongrid.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/akncolourselectiongrid.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -192,7 +192,196 @@
 #endif
     aGc.DrawRect( gridRect );
 };
- 
+
+// CLASS DECLARATION
+
+/**
+* CMainTextArray
+*
+* 
+*
+*  @lib avkon
+*  @since 2.0
+*/
+
+NONSHARABLE_CLASS(CMainTextArray) : public MDesCArray, public CBase
+    {
+    public:
+
+        /**
+        * C++ default constructor.
+        */
+        CMainTextArray(TBool &aNoneExist);
+        /**
+        * Destructor.
+        */
+        ~CMainTextArray();
+    
+        /**
+        * MdcaCount
+        * @since 2.0
+        * @return 
+        */
+        virtual TInt MdcaCount() const;
+        
+        /**
+        * MdcaPoint
+        * @since 2.0
+        * @param aIndex 
+        * @return 
+        */
+        virtual TPtrC MdcaPoint(TInt aIndex) const;
+        
+        /**
+        * ConstructL
+        * @since 2.0
+        * @param aColours Array of colours to be in grid
+        */
+        void ConstructL(CArrayFixFlat<TRgb>* aColours);
+        
+        /**
+        * ReSizeIcons
+        * @since 5.2
+        * @param aWidth the width of icon
+        * @param aheight the height of icon
+        */
+        void ReSizeIcons( TInt aWidth, TInt aHeight );
+
+    public: // Data
+        CGulIcon* iIcon[16];
+
+    private:    // Data
+        mutable TInt iIndex;
+        TInt iColourNmbr;
+        TBool iNoneExist;
+        CArrayFixFlat<TRgb>* iColours;
+        CFbsBitmap* iBitmap[16];
+        CFbsBitmapDevice* iBmpDevice[16];
+        HBufC *iString;
+
+    };
+
+// ---------------------------------------------------------
+// CMainTextArray::CMainTextArray()
+//
+// ---------------------------------------------------------
+//
+CMainTextArray::CMainTextArray(TBool &aNoneExist)
+        : iNoneExist(aNoneExist)
+    {
+    }
+// ---------------------------------------------------------
+// CMainTextArray::~CMainTextArray()
+//
+// ---------------------------------------------------------
+//
+CMainTextArray::~CMainTextArray()
+    {
+    for (TInt i = 0;i<iColourNmbr;i++)
+        {
+        delete iBitmap[i];
+        delete iBmpDevice[i];
+        }
+    delete iString;
+    }
+
+// ---------------------------------------------------------
+// CMainTextArray::ConstructL()
+// 
+// ---------------------------------------------------------
+//
+void CMainTextArray::ConstructL(CArrayFixFlat<TRgb>* aColours)
+    {
+
+    this->iColours = aColours;
+    iColourNmbr = aColours->Count();
+    if (iColourNmbr > 16)
+        {
+        iColourNmbr = 16;
+        }
+    TAknLayoutRect r;
+    TAknLayoutRect rectPane;
+    rectPane.LayoutRect( TRect( 0, 0, 0, 0 ), 
+                       AknLayoutScalable_Avkon::cell_large_graphic_colour_popup_pane(
+                                                                                     iNoneExist, 
+                                                                                     0, 
+                                                                                     0).LayoutLine());
+    r.LayoutRect( rectPane.Rect(), 
+                  AknLayoutScalable_Avkon::cell_large_graphic_colour_popup_pane_g1().LayoutLine());
+    TSize bmpsize( r.Rect().Width(), r.Rect().Height() );
+    for ( TInt i = 0; i < iColourNmbr; i++ )
+         {
+         iBitmap[i] = new (ELeave) CFbsBitmap();
+         iBitmap[i]->Create(bmpsize,EColor4K);
+         iIcon[i] = CGulIcon::NewL(iBitmap[i]);
+         iIcon[i]->SetBitmapsOwnedExternally(ETrue);
+         iBmpDevice[i] = CFbsBitmapDevice::NewL(iBitmap[i]);
+         iBmpDevice[i]->Resize(iBitmap[i]->SizeInPixels());
+         }
+    iString = HBufC::NewL(10);
+    }
+
+// ---------------------------------------------------------
+// CMainTextArray::ReSizeIcons()
+//
+// ---------------------------------------------------------
+//
+void CMainTextArray::ReSizeIcons( TInt aWidth, TInt aHeight )
+	{
+	TSize bmpsize( aWidth, aHeight );
+	for ( TInt i = 0; i < iColourNmbr; i++ )
+		 {
+	     if ( iBitmap[i] )
+	    	 {
+	         iBitmap[i]->Resize( bmpsize );
+	    	 }
+	     if ( iBmpDevice[i] )
+	    	 {
+	         iBmpDevice[i]->Resize( iBitmap[i]->SizeInPixels() ); 	
+	    	 }
+		 }
+	}
+
+// ---------------------------------------------------------
+// CMainTextArray::MdcaCount()
+//
+// ---------------------------------------------------------
+//
+TInt CMainTextArray::MdcaCount() const
+    {
+    return(iColourNmbr);
+    }
+
+// ---------------------------------------------------------
+// CMainTextArray::MdcaPoint()
+//
+// ---------------------------------------------------------
+//
+TPtrC CMainTextArray::MdcaPoint(TInt aIndex) const
+    {
+    TRAP_IGNORE(
+        {
+
+        CFbsBitGc* fbsBitGc = CFbsBitGc::NewL();
+        CleanupStack::PushL( fbsBitGc );
+        
+        fbsBitGc->Activate(iBmpDevice[aIndex]);
+
+        fbsBitGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
+        if (aIndex < iColourNmbr)
+            {
+            fbsBitGc->SetBrushColor(iColours->At(aIndex));
+            }
+        fbsBitGc->Clear();
+
+        CleanupStack::PopAndDestroy(); // fbsBitGc
+        });
+    //fix for TSW error AJUA-7MTAXE
+    iString->Des().Num(aIndex); 
+    
+    return *iString;
+    }
+
 // CLASS DECLARATION
 
 /**
@@ -395,6 +584,18 @@
     TInt cellWidth = colourCellSize.Rect().Width() - 1;
     TInt cellHeight = colourCellSize.Rect().Height() - 1;
     
+    TAknLayoutRect r;
+    TAknLayoutRect rectPane;
+    rectPane.LayoutRect( gridRect, 
+                       AknLayoutScalable_Avkon::cell_large_graphic_colour_popup_pane( 
+                    		                                                          iNoneExist, 
+                    		                                                          0, 
+                    		                                                          0 ).LayoutLine() );
+    r.LayoutRect( rectPane.Rect(), 
+    		      AknLayoutScalable_Avkon::cell_large_graphic_colour_popup_pane_g1().LayoutLine() );
+    MDesCArray* iconArray = Model()->ItemTextArray();
+    static_cast<CMainTextArray*>(iconArray)->ReSizeIcons( r.Rect().Width(), r.Rect().Height() );
+    
     // Define the overall size of the cell
     AknListBoxLayouts::SetupGridPos(*this, 0, 0, 0, 0, cellWidth, cellHeight);
     
@@ -1338,168 +1539,7 @@
     }
     
 
-// CLASS DECLARATION
 
-/**
-* CMainTextArray
-*
-* 
-*
-*  @lib avkon
-*  @since 2.0
-*/
-
-NONSHARABLE_CLASS(CMainTextArray) : public MDesCArray, public CBase
-    {
-    public:
-
-        /**
-        * C++ default constructor.
-        */
-        CMainTextArray(TBool &aNoneExist);
-        /**
-        * Destructor.
-        */
-        ~CMainTextArray();
-    
-        /**
-        * MdcaCount
-        * @since 2.0
-        * @return 
-        */
-        virtual TInt MdcaCount() const;
-        
-        /**
-        * MdcaPoint
-        * @since 2.0
-        * @param aIndex 
-        * @return 
-        */
-        virtual TPtrC MdcaPoint(TInt aIndex) const;
-        
-        /**
-        * ConstructL
-        * @since 2.0
-        * @param aColours Array of colours to be in grid
-        */
-        void ConstructL(CArrayFixFlat<TRgb>* aColours);
-
-    public: // Data
-        CGulIcon* iIcon[16];
-
-    private:    // Data
-        mutable TInt iIndex;
-        TInt iColourNmbr;
-        TBool iNoneExist;
-        CArrayFixFlat<TRgb>* iColours;
-        CFbsBitmap* iBitmap[16];
-        CFbsBitmapDevice* iBmpDevice[16];
-        HBufC *iString;
-
-    };
-
-// ---------------------------------------------------------
-// CMainTextArray::CMainTextArray()
-//
-// ---------------------------------------------------------
-//
-CMainTextArray::CMainTextArray(TBool &aNoneExist)
-        : iNoneExist(aNoneExist)
-    {
-    }
-// ---------------------------------------------------------
-// CMainTextArray::~CMainTextArray()
-//
-// ---------------------------------------------------------
-//
-CMainTextArray::~CMainTextArray()
-    {
-    for (TInt i = 0;i<iColourNmbr;i++)
-        {
-        delete iBitmap[i];
-        delete iBmpDevice[i];
-        }
-    delete iString;
-    }
-
-// ---------------------------------------------------------
-// CMainTextArray::ConstructL()
-// 
-// ---------------------------------------------------------
-//
-void CMainTextArray::ConstructL(CArrayFixFlat<TRgb>* aColours)
-    {
-
-    this->iColours = aColours;
-    iColourNmbr = aColours->Count();
-    if (iColourNmbr > 16)
-        {
-        iColourNmbr = 16;
-        }
-
-    TAknLayoutRect r;
-    TAknLayoutRect r_pane;
-    TInt w, h;
-        r_pane.LayoutRect(TRect(0,0,0,0), AknLayoutScalable_Avkon::cell_large_graphic_colour_popup_pane(iNoneExist, 0, 0).LayoutLine());
-        r.LayoutRect(r_pane.Rect(), AknLayoutScalable_Avkon::cell_large_graphic_colour_popup_pane_g1().LayoutLine());
-        w = r.Rect().Width();
-        h = r.Rect().Height();
-    TSize bmpsize(w,h);
-
-    for (TInt i = 0;i<iColourNmbr;i++)
-        {
-        iBitmap[i] = new (ELeave) CFbsBitmap();
-        iBitmap[i]->Create(bmpsize,EColor4K);
-        iIcon[i] = CGulIcon::NewL(iBitmap[i]);
-        iIcon[i]->SetBitmapsOwnedExternally(ETrue);
-        iBmpDevice[i] = CFbsBitmapDevice::NewL(iBitmap[i]);
-        iBmpDevice[i]->Resize(iBitmap[i]->SizeInPixels());
-        }
-
-    iString = HBufC::NewL(10);
-    }
-
-
-// ---------------------------------------------------------
-// CMainTextArray::MdcaCount()
-//
-// ---------------------------------------------------------
-//
-TInt CMainTextArray::MdcaCount() const
-    {
-    return(iColourNmbr);
-    }
-
-// ---------------------------------------------------------
-// CMainTextArray::MdcaPoint()
-//
-// ---------------------------------------------------------
-//
-TPtrC CMainTextArray::MdcaPoint(TInt aIndex) const
-    {
-    TRAP_IGNORE(
-        {
-
-        CFbsBitGc* fbsBitGc = CFbsBitGc::NewL();
-        CleanupStack::PushL( fbsBitGc );
-
-        fbsBitGc->Activate(iBmpDevice[aIndex]);
-
-        fbsBitGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
-        if (aIndex < iColourNmbr)
-            {
-            fbsBitGc->SetBrushColor(iColours->At(aIndex));
-            }
-
-        fbsBitGc->Clear();
-
-        CleanupStack::PopAndDestroy(); // fbsBitGc
-        });
-    //fix for TSW error AJUA-7MTAXE
-    iString->Des().Num(aIndex); 
-    
-    return *iString;
-    }
 
 // ============================ MEMBER FUNCTIONS ===============================
 
--- a/uifw/AvKon/src/aknindicator.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/aknindicator.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -608,6 +608,13 @@
             }
 
         MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+        
+        if ( iIndicatorBitmaps[layoutMode]->Count() <= 0 || !iIndicatorBitmaps[layoutMode]->At( 0 ) )
+            {
+            
+            __ASSERT_DEBUG( EFalse, User::Panic( _L("indicatorcount"),iIndicatorBitmaps[layoutMode]->Count()));
+            return;
+            }
         TSize iconSize( iIndicatorBitmaps[layoutMode]->At( 0 )->SizeInPixels() );
         TInt iconWidth  = iconSize.iWidth;
         TInt iconHeight = iconSize.iHeight;
@@ -652,8 +659,9 @@
                     }
                 }
 
-            if ( iIndicatorBitmaps[layoutMode]->At( iAnimState * 2 ) &&
-                 iIndicatorBitmaps[layoutMode]->At( iAnimState * 2 + 1 ) )
+             if ( ( iAnimState * 2 + 1 ) < iIndicatorBitmaps[layoutMode]->Count()
+                    && iIndicatorBitmaps[layoutMode]->At(iAnimState * 2)
+                    && iIndicatorBitmaps[layoutMode]->At(iAnimState * 2 + 1))
                 {
                 CFbsBitmap* mask = iIndicatorBitmaps[layoutMode]->At( iAnimState * 2 + 1 );
                 if ( iExtension && iExtension->iFader )
@@ -671,7 +679,8 @@
                                  mask,
                                  ETrue );
                 }
-        else if ( iIndicatorBitmaps[layoutMode]->At( iAnimState * 2 ) )
+             else if (( iAnimState * 2 ) < iIndicatorBitmaps[layoutMode]->Count()
+                    && iIndicatorBitmaps[layoutMode]->At(iAnimState * 2) )
                 {
                 // Draw editor indicator bitmap without mask
                 CFbsBitmap* mask = iIndicatorBitmaps[layoutMode]->At( iAnimState * 2 );
--- a/uifw/AvKon/src/akninfrm.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/akninfrm.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -278,7 +278,7 @@
 
     TBool apac( AknLayoutUtils::Variant() == EApacVariant && ( iFlags & EShowIndicators ) );
     
-    TAknWindowComponentLayout outline = AknLayoutScalable_Avkon::input_find_pane();
+    TAknWindowComponentLayout outline = AknLayoutScalable_Avkon::find_pane();
     TAknWindowLineLayout iconPos = AknLayoutScalable_Avkon::find_popup_pane_g1().LayoutLine();
     TAknTextComponentLayout   editor = AknLayoutScalable_Avkon::input_popup_find_pane_t1( apac ? 2 : 0 );
 
@@ -331,7 +331,7 @@
         {
         _AKNTRACE( "[%s][%s] Standard Layout", 
                  "CAknInputFrame", __FUNCTION__ );
-        outline = AknLayoutScalable_Avkon::input_find_pane();
+        outline = AknLayoutScalable_Avkon::find_pane();
         iconPos = AknLayoutScalable_Avkon::find_pane_g1();
         editor = AknLayoutScalable_Avkon::input_find_pane_t2( apac ? 1: 0 );
         r.LayoutRect( rect, AknLayoutScalable_Avkon::input_find_pane() );
--- a/uifw/AvKon/src/aknlistquerydialog.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/aknlistquerydialog.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -19,7 +19,7 @@
 #include <AknMediatorFacade.h>
 #include <MediatorEventProvider.h>
 #include <MediatorDomainUIDs.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 
 #include "aknPopupHeadingPane.h"
 #include "aknlistquerycontrol.h"
--- a/uifw/AvKon/src/aknlists.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/aknlists.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -3674,7 +3674,7 @@
         
     d->SetStretchableTextSubCellL( 3,
         AknLayoutScalable_Avkon::list_double_time_pane_t2( 0 ),
-        AknLayoutScalable_Avkon::list_double_time_pane_vc_t2( 0 ) );
+        AknLayoutScalable_Avkon::list_double_time_pane_vc_t2( 3 ) );
 
     d->SetStretchableGraphicSubCellL( 4,
         AknLayoutScalable_Avkon::list_double_time_pane_g1( 0 ),
@@ -3687,11 +3687,11 @@
     // Conditional subcells must be added in priority order!
     d->SetStretchableConditionalSubCellL( 5,
         AknLayoutScalable_Avkon::list_double_time_pane_t1( 2 ),
-        AknLayoutScalable_Avkon::list_double_time_pane_vc_t2( 2 ), 2, 3 );
+        AknLayoutScalable_Avkon::list_double_time_pane_vc_t2( 5 ), 2, 3 );
 
     d->SetStretchableConditionalSubCellL( 4,
         AknLayoutScalable_Avkon::list_double_time_pane_t1( 1 ),
-        AknLayoutScalable_Avkon::list_double_time_pane_vc_t2( 1 ), 2, 3 );
+        AknLayoutScalable_Avkon::list_double_time_pane_vc_t2( 4 ), 2, 3 );
     _AKNTRACE_FUNC_EXIT;
     }
     
--- a/uifw/AvKon/src/aknnavi.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/aknnavi.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -1579,11 +1579,17 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CAknNavigationControlContainer::Draw(
-    const TRect& /*aRect*/ ) const
+    const TRect& aRect ) const
     {
     if ( iExtension->iStatusPane && 
          iExtension->iStatusPane->IsTransparent() )
         {
+        CWindowGc& gc = SystemGc();
+        TRgb rgb(TRgb::Color16MA(0));
+        gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
+        gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+        gc.SetBrushColor(rgb);
+        gc.Clear(aRect);
         return;
         }
 
@@ -1866,7 +1872,7 @@
 //
 void CAknNavigationControlContainer::NotifyNaviWipeStatusL()
     {
-    if ( iExtension && iExtension->iDestructionOngoing )
+    if ( !iExtension || iExtension->iDestructionOngoing )
         {
         return;
         }
--- a/uifw/AvKon/src/aknsignal.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/aknsignal.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -531,11 +531,17 @@
 // Draws the signal pane.
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void CAknSignalPane::Draw( const TRect& /*aRect*/ ) const
+EXPORT_C void CAknSignalPane::Draw( const TRect& aRect ) const
     {     
     if ( iExtension->iStatusPane && 
          iExtension->iStatusPane->IsTransparent() )
         {
+        CWindowGc& gc = SystemGc();
+        TRgb rgb(TRgb::Color16MA(0));
+        gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
+        gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+        gc.SetBrushColor(rgb);
+        gc.Clear(aRect);
         return;
         }
 
--- a/uifw/AvKon/src/akntitle.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/akntitle.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -214,9 +214,7 @@
         // set flags to default values
         iExtension->iFlags = 0;
         }
-    
-    iExtension->iStatusPane = CEikStatusPaneBase::Current();
-    	
+   	iExtension->iStatusPane = CEikStatusPaneBase::Current();
     }
 
 
@@ -229,6 +227,7 @@
     {
     CommonConstructL();
     ReadFromResourceFileL( aReader );
+    iExtension->iStatusPane = CEikStatusPaneBase::Current();
     }
 
 
@@ -919,7 +918,12 @@
     TPtr ptr = iText->Des();
     AknBidiTextUtils::ConvertToVisualAndWrapToStringL(
         aText, *iLineWidthArray, *font, ptr, ETrue );
-
+    
+    TInt len = iText->Length();
+    if (( aLineNum == 1 ) && ( iText->LocateReverseF( '\n' ) == len -1 ) && len >= 1 )
+        {
+        ptr.Delete( len - 1, 1 );
+        }
     }
 
 
--- a/uifw/AvKon/src/aknutils.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/aknutils.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -119,7 +119,7 @@
 #include "AknAdaptiveSearch.h"
 #include <PtiEngine.h>
 
-#include <akntrace.h> 
+#include "akntrace.h"
 
 #ifdef RD_HINDI_PHONETIC_INPUT
 #include <ptiindicdefs.h>
@@ -134,6 +134,10 @@
 const TInt KFontHeightComparisonDivisor = 20;
 const TInt KInvalidIndex = -1;
 
+// Default for list separator line color's alpha value, used if not
+// found from skin.
+const TInt KDefaultSeparatorAlpha = 32;
+
 enum TAknLayoutEdwinPanic
     {
     EAknLayoutEdwinPanicNoEdwin,
@@ -3407,24 +3411,28 @@
     {
     TAknWindowComponentLayout line;
     TAknLayoutRect rect;
-    TRect screenRect(0, 0, AKN_LAYOUT_WINDOW_screen.iW, AKN_LAYOUT_WINDOW_screen.iH);
-    aRect.SetRect( 0, 0, 0, 0 );
+    rect.LayoutRect( TRect( 0, 0, 0, 0 ), AknLayoutScalable_Avkon::Screen() );
+    TRect screenRect( rect.Rect() );
     
     // No stacon pane active etc. cheking is done here before the switch-case so that we can 
     // have slightly better performance for some other lookups (e.g. screen).
     
-    switch (aParam)
+    switch ( aParam )
         {
         case EScreen:
+            {
             aRect = screenRect;
             return ETrue;
+            }
 
         case EApplicationWindow:
-            rect.LayoutRect(
-                screenRect,
-                AknLayoutScalable_Avkon::application_window( 0 ) );
-            aRect = rect.Rect();
+            {
+            // Application window is always the same as screen, so skip
+            // reading the application_window from layout data for
+            // performance improvement.
+            aRect = screenRect;
             return ETrue;
+            }
 
         case EStatusPane:
             {
@@ -3433,118 +3441,126 @@
             if ( statusPane )
                 {
                 TInt currentStatusPaneLayoutResId = statusPane->CurrentLayoutResId();
-                
-                if ( AknStatuspaneUtils::StaconPaneActive() )
+
+                TAknWindowComponentLayout parent;
+
+                switch ( currentStatusPaneLayoutResId )
                     {
-                    // flat status pane in landscape mode is the whole top pane area  
-                    if ( currentStatusPaneLayoutResId == R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ||
-                         currentStatusPaneLayoutResId == R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT )
+                    case R_AVKON_STATUS_PANE_LAYOUT_USUAL_WITH_BATTERY_PANE:
+                    case R_AVKON_STATUS_PANE_LAYOUT_USUAL:
+                    case R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE:
+                    case R_AVKON_STATUS_PANE_LAYOUT_USUAL_MIRRORED:
+                    case R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE_MIRRORED:
+                    case R_AVKON_STATUS_PANE_LAYOUT_VT:
+                    case R_AVKON_STATUS_PANE_LAYOUT_VT_MIRRORED:
+                    case R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT:
+                    default:
+                        {
+                        parent = AknLayoutScalable_Avkon::area_top_pane( 0 );
+                        line = AknLayoutScalable_Avkon::status_pane( 0 );
+                        break;
+                        }
+                    
+                    case R_AVKON_STATUS_PANE_LAYOUT_IDLE:
+                    case R_AVKON_STATUS_PANE_LAYOUT_IDLE_MIRRORED:
+                        {
+                        parent = AknLayoutScalable_Avkon::area_top_pane( 7 );
+                        line = AknLayoutScalable_Avkon::status_idle_pane(); // idle status pane
+                        break;
+                        }
+                        
+                    case R_AVKON_STATUS_PANE_LAYOUT_SMALL:
+                    case R_AVKON_STATUS_PANE_LAYOUT_SMALL_WITH_SIGNAL_PANE:
+                    case R_AVKON_STATUS_PANE_LAYOUT_SMALL_WITH_SIGNAL_PANE_MIRRORED:
+                        {
+                        // Small status pane is the whole top area.
+                        parent = AknLayoutScalable_Avkon::application_window( 0 );
+                        if ( Layout_Meta_Data::IsLandscapeOrientation() &&
+                             AknLayoutUtils::CbaLocation() == AknLayoutUtils::EAknCbaLocationBottom )
+                            {
+                            line = AknLayoutScalable_Avkon::area_top_pane( 2 );
+                            }
+                        else
+                            {
+                            line = AknLayoutScalable_Avkon::area_top_pane( 1 );
+                            }
+                            
+                        break;
+                        }
+                        
+                    case R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT:
+                    case R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT: // fallthrough
                         {
-                        rect.LayoutRect( screenRect, AknLayoutScalable_Avkon::area_top_pane(8) ); // flat area_top_pane in lsc
+                        if ( Layout_Meta_Data::IsLandscapeOrientation() )
+                            {
+                            parent = AknLayoutScalable_Avkon::area_top_pane( 2 );
+                            }
+                        else
+                            {
+                            parent = AknLayoutScalable_Avkon::area_top_pane( 6 );
+                            }
+                        line   = AknLayoutScalable_Avkon::status_pane( 1 ); // flat status pane
+                        break;
+                        }
+
+                    case R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL:
+                    case R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE: // fallthrough
+                        {
+                        parent = AknLayoutScalable_Avkon::area_top_pane( 8 );
+                        line   = AknLayoutScalable_Avkon::status_pane( 1 );
+                        break;
+                        }
+
+                    case R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT:
+                    case R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT: // fallthrough
+                        {
+                        parent = AknLayoutScalable_Avkon::area_top_pane( 2 );
+                        line   = AknLayoutScalable_Avkon::status_pane( 1 );
+                        break;
+                        }
+                        
+                    case R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT_NO_SOFTKEYS:
+                    case R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS: // fallthrough
+                        {
+                        parent = AknLayoutScalable_Avkon::area_top_pane( 20 );
+                        line   = AknLayoutScalable_Avkon::status_pane( 5 );
+                        break;
+                        }
+                        
+                    case R_AVKON_STACON_PANE_LAYOUT_USUAL_SOFTKEYS_RIGHT:
+                    case R_AVKON_STACON_PANE_LAYOUT_USUAL_SOFTKEYS_LEFT:
+                    case R_AVKON_STACON_PANE_LAYOUT_EMPTY_SOFTKEYS_RIGHT:
+                    case R_AVKON_STACON_PANE_LAYOUT_EMPTY_SOFTKEYS_LEFT:        
+                    case R_AVKON_STACON_PANE_LAYOUT_IDLE_SOFTKEYS_RIGHT:
+                    case R_AVKON_STACON_PANE_LAYOUT_IDLE_SOFTKEYS_LEFT:
+                        {
+                        rect.LayoutRect(
+                            screenRect,
+                            TAknWindowComponentLayout::Compose(
+                                AknLayoutScalable_Avkon::area_top_pane( 2 ),
+                                AknLayoutScalable_Avkon::stacon_top_pane() ) );
                         aRect = rect.Rect();
+
+                        rect.LayoutRect(
+                            aRect,
+                            AknLayoutScalable_Avkon::control_top_pane_stacon( 0 ) );
+
+                        // Status pane top = stacon top - control pane top.
+                        aRect.iBr.iX = rect.Rect().iTl.iX;
                         return ETrue;
-                        }    
-                    else
-                        {
-                        rect.LayoutRect( screenRect, AknLayoutScalable_Avkon::area_top_pane(2) ); // classic area_top_pane in lsc
-                        aRect = rect.Rect();
-                        rect.LayoutRect( aRect, AknLayoutScalable_Avkon::stacon_top_pane() );
-                        aRect = rect.Rect();
-                        rect.LayoutRect( aRect, AknLayoutScalable_Avkon::control_top_pane_stacon(0) );
-                        aRect.iBr.iX = rect.Rect().iTl.iX;  // Status pane top = stacon top - control pane top.
-                        return ETrue;   
                         }
                     }
-                else
-                    {
-                    TAknWindowComponentLayout parent;
-                        
-                    switch ( currentStatusPaneLayoutResId )
-                        {
-                        case R_AVKON_STATUS_PANE_LAYOUT_USUAL_WITH_BATTERY_PANE:
-                        case R_AVKON_STATUS_PANE_LAYOUT_USUAL:
-                        case R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE:
-                        case R_AVKON_STATUS_PANE_LAYOUT_USUAL_MIRRORED:
-                        case R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE_MIRRORED:
-                        case R_AVKON_STATUS_PANE_LAYOUT_VT:
-                        case R_AVKON_STATUS_PANE_LAYOUT_VT_MIRRORED:
-                        case R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT:
-                        default:
-                            parent = AknLayoutScalable_Avkon::area_top_pane(0);
-                            line = AknLayoutScalable_Avkon::status_pane(0); // classic status pane
-                            break;
-                        
-                        case R_AVKON_STATUS_PANE_LAYOUT_IDLE:
-                        case R_AVKON_STATUS_PANE_LAYOUT_IDLE_MIRRORED:
-                            parent = AknLayoutScalable_Avkon::area_top_pane(7);
-                            line = AknLayoutScalable_Avkon::status_idle_pane(); // idle status pane
-                            break;
-                            
-                        case R_AVKON_STATUS_PANE_LAYOUT_SMALL:
-                        case R_AVKON_STATUS_PANE_LAYOUT_SMALL_WITH_SIGNAL_PANE:
-                        case R_AVKON_STATUS_PANE_LAYOUT_SMALL_WITH_SIGNAL_PANE_MIRRORED:
-                            // Small status pane is the whole top area.
-                            parent = AknLayoutScalable_Avkon::application_window(0);
-                            if ( Layout_Meta_Data::IsLandscapeOrientation() &&
-                                 AknLayoutUtils::CbaLocation() == AknLayoutUtils::EAknCbaLocationBottom )
-                                {
-                                line = AknLayoutScalable_Avkon::area_top_pane(2);
-                                }
-                            else
-                                {
-                                line = AknLayoutScalable_Avkon::area_top_pane(1);
-                                }
-                                
-                            break;
-                            
-                        case R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT:
-                        case R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT: // fallthrough
-                            {
-                            if ( Layout_Meta_Data::IsLandscapeOrientation() &&
-                                 Layout_Meta_Data::IsPenEnabled() )
-                                {
-                                parent = AknLayoutScalable_Avkon::area_top_pane( 2 );
-                                }
-                            else
-                                {
-                                parent = AknLayoutScalable_Avkon::area_top_pane( 6 );
-                                }
-                            line   = AknLayoutScalable_Avkon::status_pane( 1 ); // flat status pane
-                            break;
-                            }
-
-                        case R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL:
-                        case R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE: // fallthrough
-                            {
-                            parent = AknLayoutScalable_Avkon::area_top_pane( 8 );
-                            line   = AknLayoutScalable_Avkon::status_pane( 1 );
-                            break;
-                            }
-
-                        case R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT:
-                        case R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT: // fallthrough
-                            {
-                            parent = AknLayoutScalable_Avkon::area_top_pane( 2 );
-                            line   = AknLayoutScalable_Avkon::status_pane( 1 );
-                            break;
-                            }
-                            
-                        case R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT_NO_SOFTKEYS:
-                        case R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS: // fallthrough
-                            {
-                            parent = AknLayoutScalable_Avkon::area_top_pane( 20 );
-                            line   = AknLayoutScalable_Avkon::status_pane( 5 );
-                            break;
-                            }
-                        }
-                        
-                    rect.LayoutRect( screenRect, TAknWindowComponentLayout::Compose( parent, line ) );
-                    aRect = rect.Rect();
-                    }
+                
+                rect.LayoutRect(
+                    screenRect,
+                    TAknWindowComponentLayout::Compose( parent, line ) );
+                aRect = rect.Rect();
                 return ETrue;
                 }
-            return EFalse;
+
+            return EFalse; // no status pane
             }
+
         case EPopupParent:
             {
             if ( screenRect.iBr.iX == 640 && screenRect.iBr.iY == 360 )
@@ -3578,6 +3594,7 @@
                 return LayoutMetricsRect( EMainPane, aRect );
                 }
             }
+
         case EMainPane:
             {
             TInt variety = 3; // classic main pane variety by default
@@ -3626,30 +3643,24 @@
                 case R_AVKON_STATUS_PANE_LAYOUT_VT_MIRRORED:
                 case R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT:
                     {
-                    // main pane variety for usual portrait main pane with
-                    // 'area_top_pane' and 'area_bottom_pane'
-#ifdef RD_SCALABLE_UI_V2
-                    variety = 3; 
-                    if ( iAvkonAppUi && iAvkonAppUi->TouchPane() && iAvkonAppUi->TouchPane()->IsVisible() )
+                    // Main pane variety for usual portrait main pane with
+                    // 'area_top_pane' and 'area_bottom_pane'.
+                    variety = 3;
+
+                    if ( iAvkonAppUi )
                         {
-                        variety = 15;
-                        }
-                    else if ( iAvkonAppUi && iAvkonAppUi->CurrentFixedToolbar() )
-                        {
-                        if ( AknLayoutUtils::PenEnabled() )
-                             {
-                             CAknToolbar* toolbar = iAvkonAppUi->CurrentFixedToolbar(); 
-                             TInt flags = toolbar->ToolbarFlags(); 
-                             if ( flags & KAknToolbarFixed && !( flags & KAknToolbarDefault )
-                                && toolbar->IsShown() ) 
+                        CAknToolbar* toolbar = iAvkonAppUi->CurrentFixedToolbar(); 
+                        if ( toolbar )
+                            {
+                            TInt flags = toolbar->ToolbarFlags(); 
+                            if ( flags & KAknToolbarFixed &&
+                                 !( flags & KAknToolbarDefault ) &&
+                                 toolbar->IsShown() ) 
                                  {
                                  variety = 18; 
                                  }
-                             }
+                            }
                         }
-#else
-                    variety = 3;
-#endif // RD_SCALABLE_UI_V2    
                     }
                     break;
 
@@ -3684,19 +3695,10 @@
                     {
                     if ( Layout_Meta_Data::IsLandscapeOrientation() )
                         {
-                        if ( PenEnabled() )
-                            {
-                            // main pane variety with small status pane in landscape
-                            // mode with 'area_top_pane', 'area_bottom_pane' and
-                            // touch pane
-                            variety = 4;
-                            }
-                        else
-                            {
-                            // main pane variety with 'area_top_pane' and
-                            // 'area_bottom_pane' in landscape (without touch pane)
-                            variety = 9;
-                            }
+                        // main pane variety with small status pane in landscape
+                        // mode with 'area_top_pane', 'area_bottom_pane' and
+                        // touch pane
+                        variety = 4;
                         }
                     else
                         {
@@ -3704,8 +3706,9 @@
                         // (with 'area_top_pane' and 'area_bottom_pane').
                         variety = 6;                    
                         }
+
+                    break;
                     }
-                    break;
 
                 case R_AVKON_STATUS_PANE_EMPTY:
                 case R_AVKON_STATUS_PANE_LAYOUT_EMPTY:
@@ -3781,9 +3784,11 @@
                     break;
                 }
 
-            rect.LayoutRect( screenRect, TAknWindowComponentLayout::Compose(
-                                     AknLayoutScalable_Avkon::application_window( 0 ),
-                                     AknLayoutScalable_Avkon::main_pane( variety ) ) );
+            // Application window is always the same as screen, so use screen
+            // as parent and skip reading the application_window from layout
+            // data for performance improvement.
+            rect.LayoutRect( screenRect,
+                             AknLayoutScalable_Avkon::main_pane( variety ) );
                 
             aRect = rect.Rect();
             return ETrue;
@@ -6548,13 +6553,19 @@
     else
         {
         // On portrait popup is located on top of the control pane if it doesn't
-        // have softkeys visible.
+        // have softkeys visible and there's enough room i.e. the popup still
+        // fits to the screen.
         if ( !aSoftkeysVisible )
             {
             TSize controlPane;
             AknLayoutUtils::LayoutMetricsSize( AknLayoutUtils::EControlPane,
                     controlPane );
             y -= controlPane.iHeight;
+            
+            if ( y < 0 )
+                {
+                y = 0;
+                }
             }
         }
 
@@ -6586,16 +6597,26 @@
 
 
 // -----------------------------------------------------------------------------
-// AknListUtils::DrawSeparator
+// Draws the separator line between list items.
 // -----------------------------------------------------------------------------
 //
 EXPORT_C void AknListUtils::DrawSeparator( CGraphicsContext& aGc, 
-        const TRect& aRect, const TRgb& aColor )
+                                           const TRect& aRect,
+                                           const TRgb& aColor,
+                                           MAknsSkinInstance* aSkin )
     {
     aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
     aGc.SetPenStyle( CGraphicsContext::ESolidPen );
     TRgb color( aColor );
-    color.SetAlpha( 32 );
+    
+    // Get the alpha value from skin.
+    TRgb colorFromSkin;
+    TInt err = AknsUtils::GetCachedColor( aSkin ? aSkin : AknsUtils::SkinInstance(),
+                                          colorFromSkin,
+                                          KAknsIIDQsnLineColors,
+                                          EAknsCIQsnLineColorsCG15 );
+    
+    color.SetAlpha( !err ? colorFromSkin.Red() : KDefaultSeparatorAlpha );
     aGc.SetPenColor( color );
     TRect lineRect( aRect );
     
@@ -6603,7 +6624,7 @@
     lineRect.Shrink( gap, 0 );
     lineRect.Move( 0, -1 );
     aGc.DrawLine( TPoint( lineRect.iTl.iX, lineRect.iBr.iY ), 
-            TPoint( lineRect.iBr.iX, lineRect.iBr.iY ) );
+                  TPoint( lineRect.iBr.iX, lineRect.iBr.iY ) );
     }
 
 // End of file
--- a/uifw/AvKon/src/eikfrlb.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/eikfrlb.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -1420,7 +1420,7 @@
         if ( aDrawSeparator && 
             static_cast<CEikListBox*>( control )->ItemsInSingleLine() == 1 )
             {
-            AknListUtils::DrawSeparator( *iGc, aItemTextRect, iTextColor );
+            AknListUtils::DrawSeparator( *iGc, aItemTextRect, iTextColor, skin );
             }
         }
     }
--- a/uifw/AvKon/src/eikfrlbd.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/eikfrlbd.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -2234,7 +2234,6 @@
             }
         }
 #else
-    CListBoxView* view = static_cast<CEikListBox*>( iExtension->iControl )->View();
     aGc.SetClippingRect( view->ViewRect() );
 #endif //RD_UI_TRANSITION_EFFECTS_LIST
     
@@ -3547,8 +3546,8 @@
         {
         iExtension->iMarginRect.BoundingRect( r );
         }
+#ifdef RD_UI_TRANSITION_EFFECTS_LIST
     CEikFormattedCellListBox* list = static_cast<CEikFormattedCellListBox*>( iExtension->iControl );
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
     MAknListBoxTfxInternal* transApi =
         CAknListLoader::TfxApiInternal( list->View()->ItemDrawer()->Gc() );
     if ( transApi )
--- a/uifw/AvKon/src/transitionmanager.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/src/transitionmanager.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -438,7 +438,7 @@
 			iFlags &= ~EffectsEnabled;	
 			iCRListen->Listen();
 			}
-		else if(!aWait || CServerWait::WaitL())
+		else
 			{
 			iFlags |= EffectsEnabled;	
 			}
--- a/uifw/AvKon/srcdata/avkon.rss	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/AvKon/srcdata/avkon.rss	Mon Mar 15 12:41:34 2010 +0200
@@ -1517,7 +1517,19 @@
             bmpfile = AVKON_BITMAP_FILE;
             states = INDICATOR_STATE
                 {
-                id = EAknIndicatorStateOn;
+                id = EAknIndicatorStateAnimate;
+                icons = INDICATOR_ICON
+                    {
+                    // IR indicator blank image used here to avoid having
+                    // multiple instances of the same icon in the Avkon bitmap
+                    // file. This is ok because the blank image is essentially
+                    // the same for all the animated universal indicators,
+                    // and it won't change.
+                    widebmpid = EMbmAvkonQgn_stat_ir_uni_blank;
+                    widebmpmask = EMbmAvkonQgn_stat_ir_uni_blank_mask;
+                    narrowbmpid = EMbmAvkonQgn_stat_ir_uni_blank;
+                    narrowbmpmask = EMbmAvkonQgn_stat_ir_uni_blank_mask;
+                    };
                 icons = INDICATOR_ICON
                     {
                     widebmpid = EMbmAvkonQgn_stat_usb_uni;
@@ -9808,6 +9820,7 @@
         MENU_ITEM { command=EPenInputCmdHwrTraining; txt=qtn_tin_option_menu_training;},
 		MENU_ITEM { command=EPenInputCmdVITUT; flags=EEikMenuItemDimmed; txt=qtn_input_switcher_itu_t; },
 		MENU_ITEM { command=EPeninputCmdFSQ; flags=EEikMenuItemDimmed; txt=qtn_input_switcher_fs_qwerty; },
+        MENU_ITEM { command=EPeninputCmdHwr; flags=EEikMenuItemDimmed; txt=qtn_input_switcher_hwr; },
         MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_tin_option_menu_help; },
         MENU_ITEM { command=EAknCmdEditModeEnglish; flags=EEikMenuItemDimmed; txt=qtn_activate_english_mode; }
         };
--- a/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicator.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicator.h	Mon Mar 15 12:41:34 2010 +0200
@@ -301,6 +301,7 @@
     
     TBool iTransparentBackground;  // A flag which tells if we have transparent bg
     TBool iDrawBackground; // do  we draw any background
+    TBool iForceDrawBackground; // draw background
     
     TBool iHandleHighlight; // is handle drag highlight on?
     
--- a/uifw/EikStd/coctlinc/aknitemactionmenuregister.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlinc/aknitemactionmenuregister.h	Mon Mar 15 12:41:34 2010 +0200
@@ -310,6 +310,15 @@
      * @return Item action menu register instance.
      */
     static AknItemActionMenuRegister* CreateInstanceL();
+
+    /**
+     * Sets constructing menu bar owner and checks if the current is a dialog.
+     * And when setting the correct menu bar owner from a dialog to NULL 
+     * checking if a correct menubar can be found for the unregistered 
+     * item action menu. 
+     */
+    void DoSetConstructingMenuBarOwnerL( MObjectProvider* aMenuBarOwner ); 
+
 private: // data
 
     /**
@@ -371,6 +380,11 @@
     MObjectProvider* iMenuBarOwner;
 
     /**
+     * Indicates if current menubar owner is a dialog
+     */
+    TBool iIsConstructingDialog; 
+    
+    /**
      * Unregistered menu data.
      */
     RArray<TAknUnregisteredMenuData> iUnregisteredMenus;
--- a/uifw/EikStd/coctlinc/smileydrawer.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlinc/smileydrawer.h	Mon Mar 15 12:41:34 2010 +0200
@@ -83,12 +83,6 @@
     
     void SetPlayTimes( TInt aPlayTimes ){ iPlayTimes = aPlayTimes; };
     
-    void SetVisibleRange( TInt aDocPos, TInt aLength )
-        {
-        iVisibleStart = aDocPos;
-        iVisibleLength = aLength;
-        };
-    
     void StartAnimTimerL();
     static TInt AnimTimerCallbackL( TAny* aPtr );
     void CheckAnimStatusL();
@@ -110,8 +104,6 @@
     
     TRgb iHighlightColor;
     TInt iPlayTimes;
-    TInt iVisibleStart;
-    TInt iVisibleLength;
     // own
     CSmileyAsyncDraw* iAsyncDraw;
     // own
--- a/uifw/EikStd/coctlinc/smileymanager.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlinc/smileymanager.h	Mon Mar 15 12:41:34 2010 +0200
@@ -66,7 +66,6 @@
 //new functions    
     TBool ConvertTextForSmileyL( TInt aStart, TDes& aText, 
         TBool aStringToCodes = ETrue );
-    void SetVisibleRange( TInt aDocPos, TInt aLength );
     
     void DrawIconL( CBitmapContext& aGc, const TRect& aRect, 
         TInt aDocPos );
--- a/uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -69,8 +69,8 @@
 void CAknDoubleSpanScrollIndicator::Draw(const TRect& /*aRect*/) const
     {
     CWindowGc& gc = SystemGc();
+    if( iDrawBackground || iForceDrawBackground )
 
-    if(iDrawBackground)
         {
         DrawBackground();
         }
@@ -218,12 +218,29 @@
         checkedFieldPosition, 
         checkedFieldSize);
     
+    TBool wasEmpty = iBackgroundRect.IsEmpty();
+    TBool isEmpty = EFalse;
+
     // If span (max number of items) is zero, then draw only the background
     if ( checkedScrollSpan == 0 || ( checkedScrollSpan <= checkedWindowSize ) )
         {
         iBackgroundRect = TRect( 0, 0, 0, 0 );
         iHandleBackgroundRect = TRect(0,0,0,0);
         iHandleRect = TRect(0,0,0,0);
+        iForceDrawBackground = ETrue; // to enable background drawing
+        isEmpty = ETrue;
+        }
+    else
+        {
+        iForceDrawBackground = EFalse;
+        }
+    if ( wasEmpty != isEmpty || iForceDrawBackground )
+        {
+        DrawDeferred();
+        }
+    
+    if ( isEmpty )
+        {
         return;
         }
 
--- a/uifw/EikStd/coctlsrc/AknToolbar.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/AknToolbar.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -3114,13 +3114,21 @@
 
             aCellPaneRect = RectFromLayout( aGridPaneRect,     
                 AknLayoutScalable_Avkon::cell_sctrl_middle_pane( 0, 0, 0 ) );
+
+            //
+            // fixing bug: ELJG-7XX8RE
+            // (Two extra black lines are displayed around toolbar area at first)
+            // extend the toolbar size by hard code
+            //
+            aToolbarRect.iTl.iY -= 1;
+            aToolbarRect.iBr.iY += 1;
             }
         }
-    else    
+    else
         {
         if ( iOrientation == EAknOrientationHorizontal )
-            {        
-            variety = 4;    
+            {
+            variety = 4;
             aToolbarRect = RectFromLayout( aMainPaneRect,
                 AknLayoutScalable_Avkon::popup_toolbar_window( variety ) );
 
--- a/uifw/EikStd/coctlsrc/EIKCOLIB.CPP	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKCOLIB.CPP	Mon Mar 15 12:41:34 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-1999 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -523,15 +523,9 @@
     CCoeEnv* env = CCoeEnv::Static();
     TRect rect = LafAppUi::ClientRect( *env, *this );
 
-#ifdef RD_SCALABLE_UI_V2
-    if ( TouchPane() )
-        {
-        TouchPane()->ReduceRect( rect );
-        }
-
     CAknToolbar* toolbar = CurrentFixedToolbar();
 
-    // reduce fixed toolbar's area
+    // Reduce fixed toolbar's area.
     if ( toolbar )
         {
         TInt flags = toolbar->ToolbarFlags();
@@ -542,35 +536,37 @@
             }
         }
 
-	  // recaculate the client rect is splitinput is enabled.
+    // Recalculate the client rect is split input is enabled.
     if ( iExtension && iExtension->iSplitInput )
         {
         TInt inputTop = rect.iBr.iY;
         TAknLayoutRect splitwnd;
-		TRect screenRect ;
-		AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
+        TRect screenRect ;
+        AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
 
         if ( Layout_Meta_Data::IsLandscapeOrientation() )
             {
-            splitwnd.LayoutRect( screenRect, AknLayoutScalable_Avkon::popup_fep_vkbss_window (0).LayoutLine() );
-            TRect wndRc = splitwnd.Rect();
-            inputTop = wndRc.iTl.iY;
+            splitwnd.LayoutRect(
+                screenRect,
+                AknLayoutScalable_Avkon::popup_fep_vkbss_window( 0 ).LayoutLine() );
             }
         else
             {
-            splitwnd.LayoutRect( screenRect, AknLayoutScalable_Avkon::popup_fep_ituss_window(0).LayoutLine() );
-            TRect wndRc = splitwnd.Rect();
-            inputTop = wndRc.iTl.iY;
+            splitwnd.LayoutRect(
+                screenRect,
+                AknLayoutScalable_Avkon::popup_fep_ituss_window( 0 ).LayoutLine() );
             }
+        
+        TRect wndRc( splitwnd.Rect() );
+        inputTop = wndRc.iTl.iY;
         rect.iBr.iY = rect.iBr.iY > inputTop ? inputTop : rect.iBr.iY;
         rect.iTl.iY = 0;
         }
 
-#endif // RD_SCALABLE_UI_V2	
-
     return rect;
     }
 
+
 void CEikAppUiFactory::ReadAppInfoResourceL(TInt aResourceFileOffset, CEikAppUi* aAppUi)
     {
     const TInt resourceFileOffset=(aResourceFileOffset)? aResourceFileOffset : aAppUi->Application()->ResourceFileOffset();
--- a/uifw/EikStd/coctlsrc/EIKEDWIN.CPP	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKEDWIN.CPP	Mon Mar 15 12:41:34 2010 +0200
@@ -572,7 +572,6 @@
     TRAPD(error,iEdwin.iText->UpdateFepInlineTextL(paragraphContainingStartPositionOfInlineTextHasChangedFormat,numberOfCharactersSuccessfullyDeleted,numberOfCharactersSuccessfullyInserted,iPositionOfInsertionPointInDocument,iPositionOfInlineTextInDocument+aPositionOfInsertionPointInInlineText,aNewInlineText));
     iLengthOfInlineText=numberOfCharactersSuccessfullyInserted;
     UpdateTextViewAfterChangeInInlineTextL(paragraphContainingStartPositionOfInlineTextHasChangedFormat,numberOfCharactersSuccessfullyDeleted,numberOfCharactersSuccessfullyInserted,error);
-    iEdwin.ReportEdwinEventL( MEikEdwinObserver::EEventTextUpdate );
     }
 
 void CEikEdwinFepSupport::SetInlineEditingCursorVisibilityL(TBool aCursorVisibility)
@@ -1042,6 +1041,7 @@
         iCenRep->Get(KAknFepClearDirection, iClearDirection);
         }
     iSmileyWrap = new ( ELeave ) CSmileyCustomWrap;
+    iSkinInstance = AknsUtils::SkinInstance();
     }
 
 void CEikEdwin::CEikEdwinExtension::CreateFormExtendedInterfaceProviderIfNeededL()
@@ -2772,7 +2772,10 @@
                 }
             Window().RequestPointerRepeatEvent(KPointerRepeatRate,rect);
             navigation = ETrue;
-            iEdwinExtension->iThumbPos = KErrNotFound;
+            if ( iLayout && !iLayout->IsFormattingBand() )
+                {
+                iEdwinExtension->iThumbPos = KErrNotFound;
+                }
             }
         else if (iEdwinInternalFlags&EDragDouble)
             {
@@ -3379,12 +3382,6 @@
         for (TInt ii=0;ii<count;ii++)
             (*iObserverArray)[ii]->HandleEdwinEventL(this,aEventType);
         }
-    if ( aEventType == MEikEdwinObserver::EEventScroll || 
-        aEventType == MEikEdwinObserver::EEventNavigation 
-        )
-        {
-        HandleScrollForSmileyL();        
-        }
     if ( aEventType == MEikEdwinObserver::EEventTextUpdate )
         {
         iEdwinExtension->iExtendedInputCapabilities->ReportEventL( 
@@ -5681,6 +5678,7 @@
             aVertModel.iThumbSpan = bottomPos - topPos;
             aVertModel.iScrollSpan = totalChars;        
             aVertModel.iThumbPosition = topPos;
+            iEdwinExtension->iThumbPos = topPos;
             }
         return;
         }
@@ -8259,8 +8257,8 @@
     return ( iEdwinExtension->iSmiley != NULL );
     }
 
-void CEikEdwin::DrawSmileyInTextL( CBitmapContext& aGc, CFont& aFont, 
-        const TDesC& aText, const TPoint& aPt )
+void CEikEdwin::DrawSmileyInTextL( RRegion& rgn, const TRect& aDrawRect, 
+    CBitmapContext& aGc, CFont& aFont, const TDesC& aText, const TPoint& aPt )
     {    
     TRect viewRect( AdjustedViewRect() );
     TInt topY( aPt.iY - aFont.AscentInPixels() );
@@ -8290,8 +8288,11 @@
             if ( CSmileyManager::IsSmileyCode( text[i] ) )
                 {
                 TInt x( pt.iX + aFont.TextWidthInPixels( text.Left( i ) ) );
-                TRect rect( x, topY, x + smileyWidth, bottomY );
-                iEdwinExtension->iSmiley->DrawIconL( aGc, rect, i + pos );
+                TRect clipRect( x, aDrawRect.iTl.iY, x + smileyWidth, 
+                    aDrawRect.iBr.iY ); 
+                rgn.SubRect( clipRect, NULL );
+                TRect iconRect( x, topY, x + smileyWidth, bottomY );
+                iEdwinExtension->iSmiley->DrawIconL( aGc, iconRect, i + pos );
                 }
             }
         }
@@ -8476,23 +8477,6 @@
     CleanupStack::PopAndDestroy( buf );
     }
 
-void CEikEdwin::HandleScrollForSmileyL()
-    {
-    if ( !iEdwinExtension->iSmiley )
-        {
-        return;
-        }
-    TCursorSelection select( GetVisibleTextRangeL() );
-    if ( select.LowerPos() != iEdwinExtension->iVisibleRange.LowerPos() ||
-        select.HigherPos() != iEdwinExtension->iVisibleRange.HigherPos() )
-        {
-        iEdwinExtension->iVisibleRange.iCursorPos = select.iCursorPos;
-        iEdwinExtension->iVisibleRange.iAnchorPos = select.iAnchorPos;
-        }
-    iEdwinExtension->iSmiley->SetVisibleRange( select.LowerPos(), 
-        select.Length() );
-    }
-
 TBool CEikEdwin::AdjustCursorForSmileyL( TInt aOldCursor, TCursorSelection& aSelect )
     {
     TBool ret( EFalse );
@@ -8518,23 +8502,6 @@
     return TRect( viewRect.iTl.iX, aRect.iTl.iY, viewRect.iBr.iX, aRect.iBr.iY );
     }
 
-void CEikEdwin::GetClipRegionForSmiley( RRegion& rgn, CFont& aFont, 
-    const TDesC& aText, const TPoint& aPt, const TRect& aDrawRect ) const
-    {
-    TInt smileyWidth( aFont.TextWidthInPixels( KSmileyString ) );
-    TInt topY( aDrawRect.iTl.iY );
-    TInt bottomY( aDrawRect.iBr.iY );
-    for ( TInt i( 0 ); i < aText.Length(); i++ )
-        {
-        if ( CSmileyManager::IsSmileyCode( aText[i] ) )
-            {
-            TInt x( aPt.iX + aFont.TextWidthInPixels( aText.Left( i ) ) );
-            TRect rect( x, topY, x + smileyWidth, bottomY );
-            rgn.SubRect( rect, NULL );
-            }
-        }
-    }
-
 TBool CEikEdwin::AdjustCursorPosByMovementL( TCursorPosition::TMovementType aMovement, 
     TBool aSelect )
     {
@@ -8561,21 +8528,34 @@
     return ret;
     }
 
-void CEikEdwin::SetSelectionVisibilityL( TBool isVisable )
-    {
-    iTextView->SetSelectionVisibilityL(isVisable);
+void CEikEdwin::SetSelectionVisibilityL( TBool aIsVisable )
+    {
+    if ( iEdwinExtension->iSmiley && !aIsVisable )
+        {
+        iTextView->SetSelectionVisibilityL( aIsVisable );
+        HandleSelectionForSmiley( TCursorSelection( 0, 0 ) );
+        }
+    else 
+        {
+        if ( iEdwinExtension->iSmiley )
+            {
+            HandleSelectionForSmiley( Selection() );
+            }
+        iTextView->SetSelectionVisibilityL( aIsVisable );
+        }
+   
     CAknEdwinState*edwinState = EditorState();
-    if( !edwinState )
-    	return;
-    if(isVisable)
-    	{
-        SetAknEditorFlags( edwinState->Flags() | EAknEditorFlagSelectionVisible );
-    	}
-    else
-    	{
-        HandleSelectionForSmiley( TCursorSelection( 0, 0 ) );
-    	SetAknEditorFlags( edwinState->Flags() & ~EAknEditorFlagSelectionVisible );
-    	}
+    if ( edwinState )
+        {
+        if ( aIsVisable )
+            {
+            SetAknEditorFlags( edwinState->Flags() | EAknEditorFlagSelectionVisible );
+            }
+        else
+            {
+            SetAknEditorFlags( edwinState->Flags() & ~EAknEditorFlagSelectionVisible );
+            }
+        }
     return;
     }
 TBool CEikEdwin::IsSelectionVisible()
@@ -8793,6 +8773,50 @@
     }
 
 
+// ---------------------------------------------------------------------------
+// CEikEdwin::DrawViewBackground
+// ---------------------------------------------------------------------------
+//
+void CEikEdwin::DrawViewBackground( TBool aStart ) const
+    {
+    CWindowGc& gc = SystemGc();
+    RWindow& window = Window();
+
+    if ( aStart )
+        {
+        TRect viewRect( iTextView->ViewRect() );
+        window.Invalidate( viewRect );
+        window.BeginRedraw( viewRect );
+        gc.Activate( window );
+    
+        if ( !AknsDrawUtils::DrawBackground( 
+                iEdwinExtension->iSkinInstance, 
+                SkinBackgroundControlContext(),
+                this,
+                gc,
+                viewRect.iTl,
+                viewRect,
+                KAknsDrawParamNoClearUnderImage ) )
+            {
+            gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+            gc.SetPenStyle( CGraphicsContext::ESolidPen );
+    
+            TRgb dummyColor;
+            TRgb backgroundColor = EditorBackgroundColor( dummyColor ); 
+    
+            gc.SetBrushColor( backgroundColor );
+            gc.SetPenColor( backgroundColor );
+            gc.DrawRect( iTextView->ViewRect() );
+            }
+        }
+    else
+        {
+        gc.Deactivate();
+        window.EndRedraw();
+        }
+    }
+
+
 void CEikEdwin::HandleSelectionForSmiley( TCursorSelection aSelect )
     {
     if ( !iEdwinExtension->iSmiley )
--- a/uifw/EikStd/coctlsrc/EIKLBX.CPP	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKLBX.CPP	Mon Mar 15 12:41:34 2010 +0200
@@ -944,6 +944,7 @@
         {
         EnableHighlight( EFalse );
         iListBox.iView->DrawItem( iLongTappedItem );
+        iListBox.iView->SetCurrentItemIndex( 0 );
         iLongTappedItem = KErrNotFound;
         }
     }
@@ -2098,7 +2099,19 @@
         	|| iListBoxExt && iListBoxExt->iPhysics 
         	&& currentItemIndex == ( topItemIndex + numberOfItems - 1 ) )
             {
-            newTopItemIndex = iView->CalcNewTopItemIndexSoItemIsVisible( currentItemIndex );
+            if ( iListBoxExt && iListBoxExt->iSingleClickEnabled )
+                {
+                // is single click is enabled, highlight must also be visible
+                if ( iListBoxExt->CollectionState()
+                        & MAknCollection::EStateHighlightVisible )
+                    {
+                    newTopItemIndex = iView->CalcNewTopItemIndexSoItemIsVisible( currentItemIndex );
+                    }
+                }
+            else
+                {
+                newTopItemIndex = iView->CalcNewTopItemIndexSoItemIsVisible( currentItemIndex );
+                }
             }
         else
             {
@@ -3162,7 +3175,8 @@
 EXPORT_C void CEikListBox::HandleItemAdditionL()
     {
     _AKNTRACE_FUNC_ENTER;
-     //fix the bug EGGO-7SQA4S and EVSG-7TD9WZ 
+    __ASSERT_DEBUG( iView, Panic( EEikPanicListBoxNoView ) );
+    //fix the bug EGGO-7SQA4S and EVSG-7TD9WZ     
     TInt curItemIndex = iView->CurrentItemIndex();
     if(curItemIndex >= 0 && curItemIndex < iModel->NumberOfItems() )
       {
@@ -5795,6 +5809,11 @@
             	{
                 Window().Invalidate( TRect( View()->ItemPos(index), 
             		                 View()->ItemSize() ) );
+                if( iItemDrawer->Flags() & 
+                            CListItemDrawer::ESingleClickDisabledHighlight )
+                    {
+                    iView->SetCurrentItemIndex( 0 );
+                    }
             	}
             break;
             }
@@ -6340,7 +6359,7 @@
 
     TBool blockEvent = EFalse;
     
-    TBool allowDragEvent( ( iListBoxFlags & ELeftDownInViewRect ) && iSBFrame && !iListBoxExt->iScrollingDisabled );
+    TBool allowDragEvent( ( iListBoxFlags & ELeftDownInViewRect ) && !iListBoxExt->iScrollingDisabled );
 
     
     switch ( aPointerEvent.iType )
--- a/uifw/EikStd/coctlsrc/EIKMENUP.CPP	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKMENUP.CPP	Mon Mar 15 12:41:34 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -2481,13 +2481,8 @@
     _AKNTRACE( "previousTopItem =  %d", previousTopItem );
     _AKNTRACE( "previousSelectedItem =  %d", previousSelectedItem );
 
-    ActivateGc();
-    CWindowGc& gc =  SystemGc();
-    PrepareGcForDrawingItems( gc );
-
-    // Scrollers top item index must be updated first because setting selected
-    // item results in animation redraw (which requires knowledge about the
-    // current top item).
+    SetSelectedItem( aNewSelectedItem );
+
     if ( aNewSelectedItem >= 0 )
         {
         ScrollToMakeItemVisible( aNewSelectedItem );
@@ -2497,6 +2492,10 @@
         ScrollToMakeItemVisible( 0 );
         }
 
+    ActivateGc();
+    CWindowGc& gc =  SystemGc();
+    PrepareGcForDrawingItems( gc );
+    
     TInt topItem = iScroller->TopItemIndex();
     TInt bottomItem = topItem + NumberOfItemsThatFitInView();
     if( bottomItem > NumberOfItemsInPane() )
@@ -2512,7 +2511,6 @@
         DrawItem( gc, topItem, ERemoveHighlight );
         DrawItem( gc, (bottomItem-1), ERemoveHighlight );
         }
-    SetSelectedItem( aNewSelectedItem );
 
     PrepareHighlightFrame();
 
@@ -2529,32 +2527,6 @@
             DrawItem( gc, aNewSelectedItem, EDrawHighlight );
             }
         }
-    else
-        {
-        /*TBool skipHighlight = EFalse;
-
-        if (iExtension && iExtension->iSct && aNewSelectedItem == 0 &&
-            previousSelectedItem > 1)
-            {
-            skipHighlight = ETrue;
-            }
-
-        for( TInt i = topItem; i<bottomItem; i++ )
-            {
-            if( i == aNewSelectedItem && !skipHighlight)
-                {
-                DrawItem( gc, i, EDrawHighlight );
-                }
-            else
-                {
-                DrawItem( gc, i, ERemoveHighlight );
-                }
-            }*/
-
-        // update the whole menu area
-        iExtension->ViewPositionChanged( iExtension->iViewPosition );   
-//        UpdateScrollBarThumbs();
-        }
 
     DeactivateGc();
     
@@ -2718,8 +2690,10 @@
 
     if ( !drawingInitiated && !iExtension->iFullRedraw )
         {
-        window.Invalidate( itemRect );
-        window.BeginRedraw( itemRect );
+        TRect drawRect( itemRect ); 
+        drawRect.Intersection( iExtension->iItemAreaRect );
+        window.Invalidate( drawRect );
+        window.BeginRedraw( drawRect );
         }
 
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
@@ -2982,7 +2956,7 @@
     // don't draw separator line for the last item
     if ( drawSeparator )
         {
-        AknListUtils::DrawSeparator( aGc, itemRect, textColor );
+        AknListUtils::DrawSeparator( aGc, itemRect, textColor, skin );
         }
     
     if ( !drawingInitiated && !iExtension->iFullRedraw )
@@ -4019,12 +3993,17 @@
             _AKNTRACE( "[%s]", "TPointerEvent::EButton1Up" );
             if ( !innerRect.Contains( aPointerEvent.iPosition ) ) 
                 {
+                TBool highlightWasEnabled = iExtension->HighlightEnabled();
                 // remove highlight in case highlight is outside of menu pane 
                 iExtension->EnableHighlight( EFalse );
                 if ( iOwner )
                     {
                     RepaintHighlight();
                     }
+                else if ( highlightWasEnabled )
+                    {
+                    DrawItem( SelectedItem(), ENoHighlight );
+                    }
                 } 
             if ( iOwner && 
                  !innerRect.Contains( aPointerEvent.iPosition ) && 
@@ -5159,13 +5138,13 @@
     iScroller->SetTopItemIndex( newTop );
     _AKNTRACE( "newTop =  %d", newTop );
  
-    // Menu moved with keys, update panning/flicking data
     iExtension->iListTopIndex = iScroller->TopItemIndex() * iItemHeight;
-    iExtension->iViewPosition.iY = 
-        iExtension->iListTopIndex + iExtension->iViewHeight / 2;  
+    TPoint newPosition( iExtension->iViewPosition );
+    newPosition.iY = iExtension->iListTopIndex + iExtension->iViewHeight / 2;  
 
     iExtension->SetOffset( 0 );
-
+    iExtension->ViewPositionChanged( newPosition );
+    
     _AKNTRACE( "iExtension->iListTopIndex =  %d", iExtension->iListTopIndex );
     _AKNTRACE( "iExtension->iViewPosition.iY =  %d", iExtension->iViewPosition.iY );
     _AKNTRACE( "[%s]", "iExtension->SetOffset( 0 )" );
@@ -5359,12 +5338,6 @@
             TRect rect( CalculateSizeAndPosition() );
             SetExtent( rect.iTl, rect.Size() );
 
-            TRAP_IGNORE( DoUpdateScrollBarL() );
-
-            UpdateBackgroundContext( Rect() );
-            PrepareHighlightFrame();
-            SetCascadedIconSize();
-
             //Initialize physics engine
             if ( iExtension->iPhysics )
                 {
@@ -5372,9 +5345,14 @@
                 iExtension->iListTopIndex = iScroller->TopItemIndex() * iItemHeight;
                 iExtension->iViewPosition.iY = 
                             iExtension->iListTopIndex + iExtension->iViewHeight / 2;  
-                iExtension->ViewPositionChanged( iExtension->iViewPosition );
-                } 
-            
+                }             
+         
+            TRAP_IGNORE( DoUpdateScrollBarL() );
+
+            UpdateBackgroundContext( Rect() );
+            PrepareHighlightFrame();
+            SetCascadedIconSize();
+          
             if ( iCascadeMenuPane )
                 {
                 iCascadeMenuPane->HandleResourceChange( aType );
@@ -6403,6 +6381,15 @@
 EXPORT_C void CEikMenuPane::SetItemSpecific(
         TInt aCommandId, TBool aItemSpecific )
     {
+    if ( !iExtension )
+        {
+        TRAPD( err, CheckCreateExtensionL() );
+        if ( err )
+            {
+            return;
+            }
+        }
+    
     if ( iExtension->iFlags.IsSet(
             CEikMenuPaneExtension::ESingleClickEnabled ) )
         {
--- a/uifw/EikStd/coctlsrc/EikCcpu.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EikCcpu.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -25,10 +25,40 @@
 #include <avkon.hrh>
 #include <eikappui.h>
 #include <eikdialg.h>
-const TInt ELeftSoftkeyIndex = 0;
-const TInt ERightSoftkeyIndex = 2;
-const TInt ENullCommandId = -1;
+const TInt KLeftSoftkeyIndex = 0;
+const TInt KRightSoftkeyIndex = 2;
+const TInt KNullCommandId = -1;
+
+/**
+* Internal extension class for CAknCcpuSupport.
+*
+* @since 9.2
+*
+* @internal
+*/
+NONSHARABLE_CLASS( CAknCcpuSupportExtension ) : public CBase
+    {
+public: // Construction and destruction
 
+    CAknCcpuSupportExtension();
+    ~CAknCcpuSupportExtension();
+
+public: // Data
+    TBool iIsCbaEmded;
+    // Owned
+    CEikButtonGroupContainer* iCba;
+    // not owned
+    CEikButtonGroupContainer* iDialogCba;
+    };
+
+CAknCcpuSupportExtension::CAknCcpuSupportExtension()
+    {
+    }
+
+CAknCcpuSupportExtension::~CAknCcpuSupportExtension()
+    {
+    delete iCba;
+    }
 
 //
 // CAknCcpuSupport
@@ -39,77 +69,85 @@
 	EFocused
 	};
 
-EXPORT_C CAknCcpuSupport::CAknCcpuSupport(MEikCcpuEditor* aEditor)
-: iEditor(aEditor)
+EXPORT_C CAknCcpuSupport::CAknCcpuSupport( MEikCcpuEditor* aEditor )
+: iEditor( aEditor )
 	{
 	}
 
 EXPORT_C CAknCcpuSupport::~CAknCcpuSupport()
 	{
-	if (iMenu)
+	if ( iMenu )
+	    {
 		iMenu->RemoveEditMenuObserver(this);
-	//delete iCba;
-	TRAP_IGNORE(DeleteCBAL());
-	iEikonEnv->EikAppUi()->RemoveFromStack(this);
+	    }
+	TRAP_IGNORE( DeleteCBAL() );
+	iEikonEnv->EikAppUi()->RemoveFromStack( this );
+	delete iExtention;
 	}
 
 EXPORT_C void CAknCcpuSupport::ConstructL()
 	{
-	iEikonEnv->EikAppUi()->AddToStackL(this, ECoeStackPriorityFep-1, ECoeStackFlagRefusesFocus);
+    iExtention = new ( ELeave ) CAknCcpuSupportExtension;
+	iEikonEnv->EikAppUi()->AddToStackL( this, ECoeStackPriorityFep-1, ECoeStackFlagRefusesFocus );
 	HandleFocusChangeL();
 	}
 
 EXPORT_C void CAknCcpuSupport::HandleSelectionChangeL()
 	{
-	if (iCba)
+	if ( iExtention->iCba )
+	    {
 		UpdateCBALabelsL();
+	    }
 	}
 
 EXPORT_C void CAknCcpuSupport::HandleFocusChangeL()
 	{
 	TBool focused = iEditor->CcpuIsFocused();
-	if (COMPARE_BOOLS(focused, iFlags[EFocused]))
+	if ( COMPARE_BOOLS( focused, iFlags[EFocused] ) )
+	    {
 		return;
+	    }
 
-	iFlags.Assign(EFocused, focused);
+	iFlags.Assign( EFocused, focused );
 
-	if (focused)
+	if ( focused )
 		{
-		MopGetObject(iMenu);
-
-		if (iMenu)
-			iMenu->SetEditMenuObserver(this);
+		MopGetObject( iMenu );
+		if ( iMenu )
+		    {
+			iMenu->SetEditMenuObserver( this );
+		    }
 		}
 	else
 		{
-		if (iMenu)
+		if ( iMenu )
 			{
-			iMenu->RemoveEditMenuObserver(this);
+			iMenu->RemoveEditMenuObserver( this );
 			iMenu = NULL;
 			}
 		}
 
-	if (iCba && !focused)
+	if ( iExtention->iCba && !focused )
 		{
 		// something has caused loss of focus while shift is pressed - drop everything.
-		//delete iCba;
-		//iCba = NULL;
 		DeleteCBAL();
 		}
 	}
 
-EXPORT_C TKeyResponse CAknCcpuSupport::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
+EXPORT_C TKeyResponse CAknCcpuSupport::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
 	{
-	if (!iFlags[EFocused])
+	if ( !iFlags[EFocused] )
+	    {
 		return EKeyWasNotConsumed;
+	    }
 
-	if (aKeyEvent.iCode == EKeyF21)		// FEP generates F21 on long shift press
+	if ( aKeyEvent.iCode == EKeyF21 )		// FEP generates F21 on long shift press
 		{
-		if (aType == EEventKey)
+		if ( aType == EEventKey )
 			{		
 			DeleteCBAL();
 			CEikAppUi* eikAppUi = (CEikAppUi *)CCoeEnv::Static()->AppUi();
-			if( eikAppUi!= NULL && eikAppUi->IsDisplayingDialog() && eikAppUi->TopFocusedControl() )
+			if( eikAppUi && eikAppUi->IsDisplayingDialog() && eikAppUi->TopFocusedControl() )
 				{
 				CEikDialog* dlg = eikAppUi->TopFocusedControl()->MopGetObject( dlg );
 				if ( dlg )
@@ -121,76 +159,81 @@
 						CEikCba* dlgcba = static_cast<CEikCba*>( currentCba->ButtonGroup() );
 						TUint flags( 0 ); 
 						flags |= CEikButtonGroupContainer::EIsEmbedded | CEikButtonGroupContainer::EAddToStack;
-						iCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal, 
+                        iExtention->iCba = CEikButtonGroupContainer::NewL( 
+                                CEikButtonGroupContainer::ECba, 
+                                CEikButtonGroupContainer::EHorizontal, 
 								this, R_AVKON_SOFTKEYS_EMPTY, flags );
 						
 						CEikCba* cba = static_cast<CEikCba*>(
-								iCba->ButtonGroup() );					   
+                                iExtention->iCba->ButtonGroup() );					   
 						
-						if( ! isCbaEmded )
+                        if( !iExtention->iIsCbaEmded )
 							{
-							currentCba->AddCommandToStackL(ELeftSoftkeyIndex, -1, _L(""), NULL, NULL);
-							currentCba->AddCommandToStackL(ERightSoftkeyIndex, -1, _L(""), NULL, NULL);
+							currentCba->AddCommandToStackL( KLeftSoftkeyIndex, -1, KNullDesC, NULL, NULL );
+							currentCba->AddCommandToStackL( KRightSoftkeyIndex, -1, KNullDesC, NULL, NULL );
 							currentCba->ActivateL();
 							currentCba->DrawNow();
-							iDialogCba = currentCba;
-							isCbaEmded = ETrue;
+                            iExtention->iDialogCba = currentCba;
+                            iExtention->iIsCbaEmded = ETrue;
 							}
 					
-						cba->SetButtonGroupFlags( ~(EEikCbaFlagTransparent | EEikCbaFlagOutlineFont) );
+						cba->SetButtonGroupFlags( ~( EEikCbaFlagTransparent | EEikCbaFlagOutlineFont ) );
 						TRect dlgRect(dlg->Rect());
 						TRect cbaRect(currentCba->Rect());
-						iCba->SetRect( currentCba->Rect());
-						iCba->SetPosition(TPoint(dlg->DrawableWindow()->Position().iX,dlg->DrawableWindow()->Position().iY + dlgRect.Height() - cbaRect.Height()));
-						iCba->SetBoundingRect( dlg->Rect());
+                        iExtention->iCba->SetRect( currentCba->Rect());
+                        iExtention->iCba->SetPosition(
+                            TPoint( dlg->DrawableWindow()->Position().iX, 
+                                    dlg->DrawableWindow()->Position().iY + dlgRect.Height() - cbaRect.Height() ) );
+                        iExtention->iCba->SetBoundingRect( dlg->Rect() );
 						
-						}
-					
-					}
-				
+						}				
+					}	
 				}
-			if(iCba == NULL)//if iCba was not create in the above branch but was deleted by DeleteCBA
+			if( !iExtention->iCba )//if iCba was not create in the above branch but was deleted by DeleteCBA
 				{
-				iCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal, this, R_AVKON_SOFTKEYS_EMPTY);
-				iCba->SetBoundingRect(iEikonEnv->EikAppUi()->ApplicationRect());
+			    iExtention->iCba = CEikButtonGroupContainer::NewL( 
+			            CEikButtonGroupContainer::ECba,
+			            CEikButtonGroupContainer::EHorizontal,
+			            this, R_AVKON_SOFTKEYS_EMPTY );
+			    iExtention->iCba->SetBoundingRect( iEikonEnv->EikAppUi()->ApplicationRect() );
 				}
 			UpdateCBALabelsL();
 			}
 		return EKeyWasConsumed;
 		}  
-    else if (aType == EEventKey &&
-             aKeyEvent.iCode == EKeyF18 &&
-             (aKeyEvent.iModifiers & EModifierCtrl))			
+    else if ( aType == EEventKey &&
+              aKeyEvent.iCode == EKeyF18 &&
+              ( aKeyEvent.iModifiers & EModifierCtrl ) )			
         {
         // FEP requests Ccpu actions with CTRL + F18         
         // Requested action is encoded in iScanCode.
-        ProcessCommandL(aKeyEvent.iScanCode);
+        ProcessCommandL( aKeyEvent.iScanCode );
        	return EKeyWasConsumed;
         }					
-	else if ((aKeyEvent.iScanCode == EStdKeyLeftShift || aKeyEvent.iScanCode == EStdKeyRightShift) && aType == EEventKeyUp)
+	else if ( ( aKeyEvent.iScanCode == EStdKeyLeftShift || 
+	            aKeyEvent.iScanCode == EStdKeyRightShift ) && 
+	            aType == EEventKeyUp )
 		{
-		//delete iCba;
-		//iCba = NULL;
 		DeleteCBAL();
 		}
 	
 	return EKeyWasNotConsumed;
 	}
 
-EXPORT_C void CAknCcpuSupport::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
+EXPORT_C void CAknCcpuSupport::DynInitMenuPaneL( TInt aResourceId,CEikMenuPane* aMenuPane )
 	{
-	if (aResourceId == R_AVKON_EDIT_MODE_MENU || 
-		aResourceId == R_AVKON_EDIT_TEXT_MENU)
+	if ( aResourceId == R_AVKON_EDIT_MODE_MENU || 
+		aResourceId == R_AVKON_EDIT_TEXT_MENU )
 		{
-		aMenuPane->SetItemDimmed(EEikCmdEditCut,!iEditor->CcpuCanCut());
-		aMenuPane->SetItemDimmed(EEikCmdEditCopy,!iEditor->CcpuCanCopy());
-		aMenuPane->SetItemDimmed(EEikCmdEditPaste,!iEditor->CcpuCanPaste());
+		aMenuPane->SetItemDimmed( EEikCmdEditCut,!iEditor->CcpuCanCut() );
+		aMenuPane->SetItemDimmed( EEikCmdEditCopy,!iEditor->CcpuCanCopy() );
+		aMenuPane->SetItemDimmed( EEikCmdEditPaste,!iEditor->CcpuCanPaste() );
 		}
 	}
 
-EXPORT_C void CAknCcpuSupport::ProcessCommandL(TInt aCommandId)
+EXPORT_C void CAknCcpuSupport::ProcessCommandL( TInt aCommandId )
 	{
-	switch (aCommandId)
+	switch ( aCommandId )
 		{
 		case EEikCmdEditCut:
 			iEditor->CcpuCutL();
@@ -213,41 +256,49 @@
 	{
 	TBool change = EFalse;
 
-	if (iEditor->CcpuCanCopy())
-		change = UpdateCBALabelL(ELeftSoftkeyIndex, EEikCmdEditCopy, R_TEXT_SOFTKEY_COPY) || change;
+	if ( iEditor->CcpuCanCopy() )
+	    {
+		change = UpdateCBALabelL( KLeftSoftkeyIndex, EEikCmdEditCopy, R_TEXT_SOFTKEY_COPY ) || change;
+	    }
 	else
-		change = UpdateCBALabelL(ELeftSoftkeyIndex, ENullCommandId, R_TEXT_SOFTKEY_EMPTY) || change;
+	    {
+		change = UpdateCBALabelL( KLeftSoftkeyIndex, KNullCommandId, R_TEXT_SOFTKEY_EMPTY ) || change;
+	    }
 
-	if (iEditor->CcpuCanPaste())
-		change = UpdateCBALabelL(ERightSoftkeyIndex, EEikCmdEditPaste, R_TEXT_SOFTKEY_PASTE) || change;
+	if ( iEditor->CcpuCanPaste() )
+	    {
+		change = UpdateCBALabelL( KRightSoftkeyIndex, EEikCmdEditPaste, R_TEXT_SOFTKEY_PASTE ) || change;
+	    }
 	else
-		change = UpdateCBALabelL(ERightSoftkeyIndex, ENullCommandId, R_TEXT_SOFTKEY_EMPTY) || change;
+	    {
+		change = UpdateCBALabelL( KRightSoftkeyIndex, KNullCommandId, R_TEXT_SOFTKEY_EMPTY ) || change;
+	    }
 
-	if (change)
+	if ( change )
 		{
-		iCba->DrawNow();
+        iExtention->iCba->DrawNow();
 		}
 	}
 
-TBool CAknCcpuSupport::UpdateCBALabelL(TInt aPosition, TInt aCommandId, TInt aTextResId)
+TBool CAknCcpuSupport::UpdateCBALabelL( TInt aPosition, TInt aCommandId, TInt aTextResId )
 	{
-	if (iCba->ButtonGroup()->CommandId(aPosition) != aCommandId)
+	if ( iExtention->iCba->ButtonGroup()->CommandId(aPosition) != aCommandId )
 		{
-		HBufC* buf = iEikonEnv->AllocReadResourceLC(aTextResId);
-		iCba->SetCommandL(aPosition, aCommandId, *buf);
-		CleanupStack::PopAndDestroy(buf);
+		HBufC* buf = iEikonEnv->AllocReadResourceLC( aTextResId );
+		iExtention->iCba->SetCommandL( aPosition, aCommandId, *buf );
+		CleanupStack::PopAndDestroy( buf );
 		return ETrue;
 		}
 	return EFalse;
 	}
 
-void CAknCcpuSupport::SetEmphasis(CCoeControl* /*aMenuControl*/,TBool /*aEmphasis*/)
+void CAknCcpuSupport::SetEmphasis( CCoeControl* /*aMenuControl*/, TBool /*aEmphasis*/ )
 	{
 	}
 
-EXPORT_C void CAknCcpuSupport::HandlePointerEventL(const TPointerEvent& aPointerEvent) 
+EXPORT_C void CAknCcpuSupport::HandlePointerEventL( const TPointerEvent& aPointerEvent ) 
     { 
-    CAknControl::HandlePointerEventL(aPointerEvent); 
+    CAknControl::HandlePointerEventL( aPointerEvent ); 
     }
 
 EXPORT_C void* CAknCcpuSupport::ExtensionInterface( TUid /*aInterface*/ )
@@ -256,35 +307,32 @@
     }
 void CAknCcpuSupport::DeleteCBAL()
 	{
-	if ( iCba != NULL )
+	if ( iExtention->iCba )
 		{
-	    delete iCba;
-	    iCba = NULL;
+	    delete iExtention->iCba;
+	    iExtention->iCba = NULL;
 		}
-	if (isCbaEmded)
+	if ( iExtention->iIsCbaEmded )
 		{
 		CEikAppUi* eikAppUi = (CEikAppUi *)CCoeEnv::Static()->AppUi();
-		    if( eikAppUi!= NULL && eikAppUi->IsDisplayingDialog() && eikAppUi->TopFocusedControl() )
-		        {
-		        CEikDialog* dlg = eikAppUi->TopFocusedControl()->MopGetObject( dlg );
-		        if ( dlg )
-		        	{
-		            CEikButtonGroupContainer* currentCba = dlg->MopGetObject( currentCba );
-	        	    CEikCba* dlgcba = static_cast<CEikCba*>(
-	        	        currentCba->ButtonGroup() );
-	        	    if ( currentCba && iDialogCba == currentCba )
-		        	    {
-		        	    currentCba->RemoveCommandFromStack(ELeftSoftkeyIndex,-1);
-		        	    currentCba->RemoveCommandFromStack(ERightSoftkeyIndex,-1);
-
-		        	    //dlgcba->UpdateCbaLabels(EFalse);
-		        	    currentCba->DrawNow();
-		        	    currentCba->ActivateL();
-		        	    iDialogCba = NULL;
-                        isCbaEmded = EFalse;
-		        	    }
-		        	}
-		        }
+        if( eikAppUi && eikAppUi->IsDisplayingDialog() && eikAppUi->TopFocusedControl() )
+            {
+            CEikDialog* dlg = eikAppUi->TopFocusedControl()->MopGetObject( dlg );
+            if ( dlg )
+                {
+                CEikButtonGroupContainer* currentCba = dlg->MopGetObject( currentCba );
+                CEikCba* dlgcba = static_cast<CEikCba*>(
+                    currentCba->ButtonGroup() );
+                if ( currentCba && iExtention->iDialogCba == currentCba )
+                    {
+                    currentCba->RemoveCommandFromStack( KLeftSoftkeyIndex, -1 );
+                    currentCba->RemoveCommandFromStack( KRightSoftkeyIndex, -1 );
+                    currentCba->DrawNow();
+                    currentCba->ActivateL();
+                    iExtention->iDialogCba = NULL;
+                    iExtention->iIsCbaEmded = EFalse;
+                    }
+                }
+            }
 		}
-
 	}
--- a/uifw/EikStd/coctlsrc/aknedwincustomdrawbase.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknedwincustomdrawbase.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -78,6 +78,8 @@
     iPictographDrawer = CAknPictographInterface::NewL(
         static_cast<CCoeControl&>( const_cast<CEikEdwin&>( iEdwin ) ),
         *static_cast<MAknPictographAnimatorCallBack*>( this ) );
+    
+    iSkinInstance = AknsUtils::SkinInstance();
     }
 
 // -----------------------------------------------------------------------------
@@ -191,33 +193,26 @@
     CFont* font = NULL;
     aParam.iMap.GetNearestFontInTwips( font, aFormat.iFontSpec );
     RRegion rgn;
-    if ( iEdwin.IsSmileyEnabled() && font )
+    TBool drawSmiley( iEdwin.IsSmileyEnabled() && font && ( &aParam.iGc ==
+        static_cast<CGraphicsContext*>( iTextView->BitmapContext() ) ) );
+    if ( drawSmiley )
         {
+        TPoint startPt( aParam.iDrawRect.iTl );
+        startPt.iY = aLineInfo.iBaseline;
+        CBitmapContext* bitmapGc( iTextView->BitmapContext() );
+        CEikEdwin& edwin = const_cast<CEikEdwin&>( iEdwin );
         rgn.AddRect( iEdwin.AdjustDrawRectForSmiley( aParam.iDrawRect ) );
-        iEdwin.GetClipRegionForSmiley( rgn, *font, aText, aTextOrigin, 
-            aParam.iDrawRect );
+        TRAP_IGNORE( edwin.DrawSmileyInTextL( rgn, aParam.iDrawRect, *bitmapGc, 
+            *font, aText, startPt ) );
         aParam.iGc.SetClippingRegion( rgn );
         }
     CLafEdwinCustomDrawBase::DrawText( aParam, aLineInfo, alteredFormat, 
         aText, aTextOrigin, aExtraPixels );
-    if ( iEdwin.IsSmileyEnabled() )
+    if ( drawSmiley )
         {
         aParam.iGc.CancelClippingRegion();
         }
     rgn.Close();
-    
-    if ( iEdwin.IsSmileyEnabled() && font && ( &aParam.iGc ==
-        static_cast<CGraphicsContext*>( iTextView->BitmapContext() ) ) )
-        {
-        CBitmapContext* bitmapGc( iTextView->BitmapContext() );
-        CEikEdwin& edwin = const_cast<CEikEdwin&>( iEdwin );
-        TPoint startPt( aParam.iDrawRect.iTl );
-        startPt.iY = aLineInfo.iBaseline;
-        TRAP_IGNORE( {
-            edwin.HandleScrollForSmileyL();
-            edwin.DrawSmileyInTextL( *bitmapGc, *font, aText, startPt );
-            } );
-        }
 
     // Draw pictographs if the feature is supported.
     // Character justification is not supported.
@@ -328,10 +323,9 @@
     TRgb ret = aDefaultColor;
     if (aColorIndex==TLogicalRgb::ESystemForegroundIndex)
         {
-        MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-        if (skin && iEdwin.SkinColorId() != KErrNotFound)
+        if (iSkinInstance && iEdwin.SkinColorId() != KErrNotFound)
             {
-            AknsUtils::GetCachedColor(skin, ret, KAknsIIDQsnTextColors, iEdwin.SkinColorId());
+            AknsUtils::GetCachedColor(iSkinInstance, ret, KAknsIIDQsnTextColors, iEdwin.SkinColorId());
             }
         }
     else if (aColorIndex==TLogicalRgb::ESystemBackgroundIndex)
@@ -345,32 +339,32 @@
     else if (aColorIndex==TLogicalRgb::ESystemSelectionForegroundIndex)
         {
         ret = KRgbWhite;
-        MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-        if (skin)
+
+        if (iSkinInstance)
             {
             if ( iEdwin.HighlightStyle() == EEikEdwinHighlightLink )
                 {
-                AknsUtils::GetCachedColor(skin, ret, KAknsIIDQsnHighlightColors, EAknsCIQsnTextColorsCG3);
+                AknsUtils::GetCachedColor(iSkinInstance, ret, KAknsIIDQsnHighlightColors, EAknsCIQsnTextColorsCG3);
                 }
             else // default
                 {
-                AknsUtils::GetCachedColor(skin, ret, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG24);
+                AknsUtils::GetCachedColor(iSkinInstance, ret, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG24);
                 }
             }
         }
     else if (aColorIndex==TLogicalRgb::ESystemSelectionBackgroundIndex)
         {
         ret = KRgbBlue;
-        MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-        if (skin)
+
+        if (iSkinInstance)
             {
             if ( iEdwin.HighlightStyle() == EEikEdwinHighlightLink )
                 {
-                AknsUtils::GetCachedColor(skin, ret, KAknsIIDQsnHighlightColors, EAknsCIQsnTextColorsCG1);
+                AknsUtils::GetCachedColor(iSkinInstance, ret, KAknsIIDQsnHighlightColors, EAknsCIQsnTextColorsCG1);
                 }
             else // default
                 {
-                AknsUtils::GetCachedColor(skin, ret, KAknsIIDQsnHighlightColors, EAknsCIQsnHighlightColorsCG2);
+                AknsUtils::GetCachedColor(iSkinInstance, ret, KAknsIIDQsnHighlightColors, EAknsCIQsnHighlightColorsCG2);
                 }
             }
         }
@@ -407,19 +401,14 @@
 #endif //RD_UI_TRANSITION_EFFECTS_POPUPS
         if ( bitmapGc && iEdwin.SkinEnabled() )
             {
-            MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-            // Edwin manages the skin background
-            MAknsControlContext* edCc = iEdwin.SkinBackgroundControlContext();
-
-            TInt drawFlags = KAknsDrawParamDefault;
-            if( CAknEnv::Static()->TransparencyEnabled() )
-            {
-                drawFlags |= KAknsDrawParamNoClearUnderImage;
-            }
-
-            if( AknsDrawUtils::DrawBackground( skin, edCc,
-                    &iControl, *bitmapGc, aRect.iTl, aRect,
-                    drawFlags ))
+            if ( AknsDrawUtils::DrawBackground( 
+                iSkinInstance, 
+                iEdwin.SkinBackgroundControlContext(),
+                &iControl,
+                *bitmapGc,
+                aRect.iTl,
+                aRect,
+                KAknsDrawParamNoClearUnderImage ) )
                 {
                 aDrawnRect = aRect;
                 drawn = ETrue;
--- a/uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -87,7 +87,6 @@
         // Pointer down inside view rect, set flag to allow dragging 
         // and initialize values
         iFlags.Set( EFlagDraggingAllowed );
-        iPrevPosition = aPointerEvent.iPosition;
         iStartPosition = aPointerEvent.iPosition;
         StopPhysics();
 
@@ -112,15 +111,15 @@
                 iDragThresholdExceeded = ETrue;
                 }
             }
-
-        if ( iDragThresholdExceeded )
+        else
             {
             TInt deltaY( iPrevPosition.iY - aPointerEvent.iPosition.iY );
-            iPrevPosition = aPointerEvent.iPosition;
 
             TPoint deltaPoint( 0, deltaY );
             iPhysics->RegisterPanningPosition( deltaPoint );
             }
+
+        iPrevPosition = aPointerEvent.iPosition;
         }
     else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
         {
@@ -242,8 +241,12 @@
         {
         BlockEvents( ETrue );
         }
-    // Scroll view based on values from aknphysics
+    
+    // Disable background drawing while panning or flicking. Instead,
+    // background is drawn in one frame.
+    iEdwin.DrawViewBackground( ETrue );
     ScrollView( ETrue );
+    iEdwin.DrawViewBackground( EFalse );
     }
 
 // ---------------------------------------------------------------------------
--- a/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -28,6 +28,7 @@
 #include "akncollectionobserver.h"
 #include "aknitemactionmenudata.h"
 #include "aknitemactionmenuregister.h"
+#include "akntrace.h"
 
 /**
  * Index for invalid list index.
@@ -41,9 +42,11 @@
 CAknItemActionMenu* CAknItemActionMenu::NewL(
         MAknCollection& aCollection, MObjectProvider* aOwner )
     {
+    _AKNTRACE_FUNC_ENTER;
     CAknItemActionMenu* self = CAknItemActionMenu::NewLC( 
             aCollection, aOwner );
     CleanupStack::Pop( self );
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
@@ -55,9 +58,11 @@
 CAknItemActionMenu* CAknItemActionMenu::NewLC(
         MAknCollection& aCollection, MObjectProvider* aOwner )
     {
+    _AKNTRACE_FUNC_ENTER;
     CAknItemActionMenu* self = new ( ELeave ) CAknItemActionMenu( aOwner );
     CleanupStack::PushL( self );
     self->ConstructL( aCollection );
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
@@ -68,6 +73,7 @@
 //
 CAknItemActionMenu::~CAknItemActionMenu()
     {
+    _AKNTRACE_FUNC_ENTER;
     AKNTASHOOK_REMOVE();
     delete iPopupMenu;
     delete iMenuPane;
@@ -80,6 +86,7 @@
         }
 
     iObservers.Close();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -90,6 +97,8 @@
 EXPORT_C CAknItemActionMenu* CAknItemActionMenu::RegisterCollectionL(
         MAknCollection& aCollection )
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return AknItemActionMenuRegister::RegisterCollectionL( aCollection );
     }
 
@@ -101,6 +110,7 @@
 EXPORT_C void CAknItemActionMenu::RemoveCollection(
         MAknCollection& aCollection )
     {
+    _AKNTRACE_FUNC_ENTER;
     for ( TInt i = 0; i < iStates.Count(); i++ )
         {
         MAknCollection* state( iStates[ i ] );
@@ -111,6 +121,7 @@
             }
         }
     UnregisterMenu(); 
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -120,6 +131,7 @@
 //
 EXPORT_C TBool CAknItemActionMenu::InitMenuL()
     {
+    _AKNTRACE_FUNC_ENTER;
     iMenuData->Reset();
     if ( !iMenuBar )
         {
@@ -139,6 +151,7 @@
         return EFalse;
         }
 
+    _AKNTRACE_FUNC_EXIT;
     return iMenuData->Count();
     }
 
@@ -151,6 +164,7 @@
         const TPoint& aPosition,
         TUint /*aFlags*/ )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iMenuData->Count() )
         {
         if ( !iPopupMenu )
@@ -164,6 +178,7 @@
                 CAknStylusPopUpMenu::EPositionTypeRightBottom );
         iPopupMenu->ShowMenu();
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -174,12 +189,14 @@
 EXPORT_C void CAknItemActionMenu::CollectionChanged(
         MAknCollection& aCollection )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iObservers.Count() && iStates.Find( &aCollection ) != KErrNotFound )
         {
         TBool collectionVisible( aCollection.CollectionState()
                 & MAknCollection::EStateCollectionVisible );
         NotifyChangeToActiveObserver( collectionVisible );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -190,10 +207,12 @@
 void CAknItemActionMenu::AddCollectionStateL(
         MAknCollection& aCollection )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iStates.Find( &aCollection ) == KErrNotFound )
         {
         iStates.InsertL( &aCollection, 0 );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -205,8 +224,10 @@
         MEikMenuObserver* aMenuObserver,
         CEikMenuBar* aMenuBar )
     {
+    _AKNTRACE_FUNC_ENTER;
     iMenuBarObserver = aMenuObserver;
     iMenuBar = aMenuBar;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -216,6 +237,7 @@
 //
 TBool CAknItemActionMenu::CollectionHighlightVisible() const
     {
+    _AKNTRACE_FUNC_ENTER;
     TBool highlightVisible( ETrue );
     for ( TInt i = 0; i < iStates.Count(); i++ )
         {
@@ -231,6 +253,7 @@
             break;
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     return highlightVisible;
     }
 
@@ -242,6 +265,7 @@
 TBool CAknItemActionMenu::CollectionSoftkeyVisible(
         TBool aVisibleCollection ) const
     {
+    _AKNTRACE_FUNC_ENTER;
     TBool softkeyVisible( ETrue );
     for ( TInt i = 0; i < iStates.Count(); i++ )
         {
@@ -262,6 +286,7 @@
             break;
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     return softkeyVisible;
     }
 
@@ -272,6 +297,8 @@
 //
 CAknItemActionMenuData& CAknItemActionMenu::MenuData()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return *iMenuData;
     }
 
@@ -283,11 +310,13 @@
 void CAknItemActionMenu::RegisterCollectionObserverL(
         MAknCollectionObserver& aObserver )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iObservers.Find( &aObserver ) == KErrNotFound )
         {
         iObservers.InsertL( &aObserver, 0 );
         aObserver.SetItemActionMenu( this );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -298,12 +327,14 @@
 void CAknItemActionMenu::RemoveCollectionObserver(
         MAknCollectionObserver& aObserver )
     {
+    _AKNTRACE_FUNC_ENTER;
     TInt index( iObservers.Find( &aObserver ) );
     if ( index != KErrNotFound )
         {
         iObservers.Remove( index );
         UnregisterMenu(); 
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -313,6 +344,8 @@
 //
 TInt CAknItemActionMenu::CollectionCount() const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return iStates.Count();
     }
 
@@ -323,6 +356,8 @@
 //
  MObjectProvider* CAknItemActionMenu::Owner() const
      {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
      return iOwner;
      }
 
@@ -339,7 +374,9 @@
     iMenuData( NULL ),
     iOwner( aOwner )
     {
+    _AKNTRACE_FUNC_ENTER;
     AKNTASHOOK_ADD( this, "CAknItemActionMenu" );
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -349,8 +386,10 @@
 //
 void CAknItemActionMenu::ConstructL( MAknCollection& aCollection )
     {
+    _AKNTRACE_FUNC_ENTER;
     AddCollectionStateL( aCollection );
     iMenuData = CAknItemActionMenuData::NewL();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -360,6 +399,7 @@
 //
 TInt CAknItemActionMenu::LaunchSubMenuQueryL( const TDesC& aHeading )
     {
+    _AKNTRACE_FUNC_ENTER;
     TInt selectedIndex( KInvalidListIndex );
     if ( iMenuData->Count() )
         {
@@ -375,6 +415,7 @@
             }
         queryDialog->RunLD();
         }
+    _AKNTRACE_FUNC_EXIT;
     return ++selectedIndex;
     }
 
@@ -386,6 +427,7 @@
 void CAknItemActionMenu::NotifyChangeToActiveObserver(
         TBool aCollectionVisible )
     {
+    _AKNTRACE_FUNC_ENTER;
     for ( TInt i = 0; i < iObservers.Count(); i++ )
         {
         MAknCollectionObserver* observer( iObservers[ i ] );
@@ -395,6 +437,7 @@
             break;
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -406,6 +449,8 @@
         CCoeControl* /*aMenuControl*/,
         TBool /*aEmphasis*/ )
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -415,6 +460,7 @@
 //
 void CAknItemActionMenu::ProcessCommandL( TInt aCommandId )
     {
+    _AKNTRACE_FUNC_ENTER;
     MAknCollection* informState ( NULL );
     // Store collection state before sending the command
     for ( TInt i = 0; i < iStates.Count(); i++ )
@@ -454,6 +500,7 @@
         informState->ItemActionMenuClosed();
         }
     UnregisterMenu(); 
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -463,6 +510,7 @@
 //
 void CAknItemActionMenu::UnregisterMenu()
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( !iProcessingCommand && !iStates.Count() && !iObservers.Count() )
         {
         delete iPopupMenu;
@@ -471,6 +519,7 @@
         iMenuPane = NULL;
         AknItemActionMenuRegister::UnregisterItemActionMenu( *this );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // End of File
--- a/uifw/EikStd/coctlsrc/aknitemactionmenudata.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenudata.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -20,6 +20,7 @@
 #include <eikpanic.h>
 
 #include "aknitemactionmenudata.h"
+#include "akntrace.h"
 
 // ---------------------------------------------------------------------------
 // CAknItemActionMenuData::NewL
@@ -27,7 +28,9 @@
 //
 CAknItemActionMenuData* CAknItemActionMenuData::NewL()
     {
+    _AKNTRACE_FUNC_ENTER;
     CAknItemActionMenuData* self = new ( ELeave ) CAknItemActionMenuData();
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
@@ -38,7 +41,9 @@
 //
 CAknItemActionMenuData::~CAknItemActionMenuData()
     {
+    _AKNTRACE_FUNC_ENTER;
     iMenuData.Close();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -49,11 +54,13 @@
 void CAknItemActionMenuData::AddMenuItemToDataArrayL(
         TInt aCommandId, TInt aCascadeId, const TDesC& aText )
     {
+    _AKNTRACE_FUNC_ENTER;
     TAknItemActionMenuData newData;
     newData.iCommandId = aCommandId;
     newData.iCascadeId = aCascadeId;
     newData.iText = aText;
     iMenuData.AppendL( newData );
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -64,6 +71,7 @@
 void CAknItemActionMenuData::AddMenuItemsToStylusPopupMenuL(
         CAknStylusPopUpMenu* aPopupMenu )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( aPopupMenu )
         {
         for ( TInt i = 0; i < iMenuData.Count(); i++ )
@@ -71,6 +79,7 @@
             aPopupMenu->AddMenuItemL( iMenuData[ i ].iText, i + 1 );
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -80,6 +89,7 @@
 //
 MDesCArray* CAknItemActionMenuData::MenuItemsForQueryDialogL()
     {
+    _AKNTRACE_FUNC_ENTER;
     CDesCArrayFlat* itemArray( NULL );
     TInt itemCount( iMenuData.Count() );
     if ( itemCount )
@@ -93,6 +103,7 @@
             }
         CleanupStack::Pop( itemArray );
         }
+    _AKNTRACE_FUNC_EXIT;
     return itemArray;
     }
 
@@ -103,10 +114,12 @@
 //
 TInt CAknItemActionMenuData::MenuItemCascadeId( TInt aIndex )
     {
+    _AKNTRACE_FUNC_ENTER;
     aIndex--;
     __ASSERT_ALWAYS(
             ( aIndex >= 0 && aIndex < iMenuData.Count() ),
             Panic( EEikPanicOutOfRange ) );
+    _AKNTRACE_FUNC_EXIT;
     return iMenuData[ aIndex ].iCascadeId;
     }
 
@@ -117,10 +130,12 @@
 //
 TDesC& CAknItemActionMenuData::MenuItemText( TInt aIndex )
     {
+    _AKNTRACE_FUNC_ENTER;
     aIndex--;
     __ASSERT_ALWAYS(
             ( aIndex >= 0 && aIndex < iMenuData.Count() ),
             Panic( EEikPanicOutOfRange ) );
+    _AKNTRACE_FUNC_EXIT;
     return iMenuData[ aIndex ].iText;
     }
 
@@ -131,10 +146,12 @@
 //
 TInt CAknItemActionMenuData::MenuItemCommandId( TInt aIndex  )
     {
+    _AKNTRACE_FUNC_ENTER;
     aIndex--;
     __ASSERT_ALWAYS(
             ( aIndex >= 0 && aIndex < iMenuData.Count() ),
             Panic( EEikPanicOutOfRange ) );
+    _AKNTRACE_FUNC_EXIT;
     return iMenuData[ aIndex ].iCommandId;
     }
 
@@ -145,7 +162,9 @@
 //
 void CAknItemActionMenuData::Reset()
     {
+    _AKNTRACE_FUNC_ENTER;
     iMenuData.Reset();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -155,6 +174,8 @@
 //
 TInt CAknItemActionMenuData::Count() const
     {
+    _AKNTRACE_FUNC_ENTER;;
+    _AKNTRACE_FUNC_EXIT;
     return iMenuData.Count();
     }
 
--- a/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -41,7 +41,7 @@
 
     if ( instance )
         {
-        instance->iMenuBarOwner = aMenuBarOwner;
+        instance->DoSetConstructingMenuBarOwnerL( aMenuBarOwner ); 
         }
 
     _AKNTRACE_FUNC_EXIT;
@@ -346,17 +346,20 @@
     for ( TInt i = 0; i < iUnregisteredMenus.Count(); i++ )
         {
         TAknUnregisteredMenuData& data( iUnregisteredMenus[ i ] );
-        CEikMenuBar* ownerMenubar( NULL );
-        data.iOwner->MopGetObjectNoChaining( ownerMenubar );
-        if ( ownerMenubar == &aMenuBar )
+        if ( data.iOwner ) 
             {
-            menu = data.iMenu;
-            if ( menu )
+            CEikMenuBar* ownerMenubar( NULL );
+            data.iOwner->MopGetObjectNoChaining( ownerMenubar );
+            if ( ownerMenubar == &aMenuBar )
                 {
-                AddRegisterEntryL( aMenuBar, *menu );
-                iUnregisteredMenus.Remove( i );
+                menu = data.iMenu;
+                if ( menu )
+                    {
+                    AddRegisterEntryL( aMenuBar, *menu );
+                    iUnregisteredMenus.Remove( i );
+                    }
+                break;
                 }
-            break;
             }
         }
 
@@ -393,11 +396,14 @@
         TAknUnregisteredMenuData& data( iUnregisteredMenus[ i ] );
         if ( data.iMenu == &aItemActionMenu )
             {
-            data.iOwner->MopGetObjectNoChaining( menuBar );
-            if ( menuBar )
+            if ( data.iOwner ) 
                 {
-                AddRegisterEntryL( *menuBar, aItemActionMenu );
-                iUnregisteredMenus.Remove( i );
+                data.iOwner->MopGetObjectNoChaining( menuBar );
+                if ( menuBar )
+                    {
+                    AddRegisterEntryL( *menuBar, aItemActionMenu );
+                    iUnregisteredMenus.Remove( i );
+                    }
                 }
             break;
             }
@@ -877,6 +883,48 @@
     return instance;
     }
 
+// ---------------------------------------------------------------------------
+// AknItemActionMenuRegister::DoSetConstructingMenuBarOwnerL
+// ---------------------------------------------------------------------------
+//
+void AknItemActionMenuRegister::DoSetConstructingMenuBarOwnerL( 
+        MObjectProvider* aMenuBarOwner )
+    {
+    if ( aMenuBarOwner )
+        {
+        CEikDialog* dialog( NULL );
+        aMenuBarOwner->MopGetObjectNoChaining( dialog );
+        // Get information if the constructing menu bar owner is a dialog  
+        // and store it to iIsConstructingDialog
+        if ( dialog )
+            {
+            iIsConstructingDialog = ETrue; 
+            }
+        }
+    else if ( !aMenuBarOwner && iIsConstructingDialog )
+        {
+        // When setting constructing menubar owner to NULL from a dialog check
+        // if there is item with the same menubar owner in iUnregisteredMenus 
+        // and try to find correct menubar for it.
+        for ( TInt i = 0; i < iUnregisteredMenus.Count(); i++ )
+            {
+            TAknUnregisteredMenuData& data( iUnregisteredMenus[ i ] );
+            if ( data.iOwner == iMenuBarOwner ) 
+                {
+                data.iOwner = iMenuBarOwner = NULL; 
+                CEikMenuBar* menuBar = FindCurrentMenuBarL(); 
+                if ( menuBar )
+                    {
+                    AddRegisterEntryL( *menuBar, *data.iMenu );
+                    iUnregisteredMenus.Remove( i );
+                    }
+                iIsConstructingDialog = EFalse; 
+                return; 
+                }
+            }
+        }
+    iMenuBarOwner = aMenuBarOwner;
+    }
 
 // ---------------------------------------------------------------------------
 // AknItemActionMenuRegister::TAknUnregisteredObserverData
--- a/uifw/EikStd/coctlsrc/aknitemactionmenuregisterarray.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenuregisterarray.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -19,6 +19,7 @@
 #include <eikmenub.h>
 
 #include "aknitemactionmenuregisterarray.h"
+#include "akntrace.h"
 
 // ---------------------------------------------------------------------------
 // CCAknItemActionMenuRegisterArray::NewL
@@ -26,9 +27,11 @@
 //
 CAknItemActionMenuRegisterArray* CAknItemActionMenuRegisterArray::NewL()
     {
+    _AKNTRACE_FUNC_ENTER;
     CAknItemActionMenuRegisterArray* self =
         CAknItemActionMenuRegisterArray::NewLC();
     CleanupStack::Pop( self );
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
@@ -39,9 +42,11 @@
 //
 CAknItemActionMenuRegisterArray* CAknItemActionMenuRegisterArray::NewLC()
     {
+    _AKNTRACE_FUNC_ENTER;
     CAknItemActionMenuRegisterArray* self =
         new ( ELeave ) CAknItemActionMenuRegisterArray();
     CleanupStack::PushL( self );
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
@@ -52,8 +57,10 @@
 //
 CAknItemActionMenuRegisterArray::~CAknItemActionMenuRegisterArray()
     {
+    _AKNTRACE_FUNC_ENTER;
     iRegisterArray.ResetAndDestroy();
     iRegisterArray.Close();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -64,10 +71,12 @@
 void CAknItemActionMenuRegisterArray::AddEntryL(
         CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu )
     {
+    _AKNTRACE_FUNC_ENTER;
     CRegisterEntry* newEntry = CRegisterEntry::NewLC(
             aMenuBar, aItemActionMenu );
     iRegisterArray.AppendL( newEntry );
     CleanupStack::Pop( newEntry );
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -78,6 +87,7 @@
 void CAknItemActionMenuRegisterArray::UnregisterMenuBar(
         CEikMenuBar& aMenuBar )
     {
+    _AKNTRACE_FUNC_ENTER;
     CRegisterEntry* entry( NULL );
     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
         {
@@ -97,6 +107,7 @@
             break;
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -107,6 +118,7 @@
 void CAknItemActionMenuRegisterArray::UnregisterItemActionMenu(
         CAknItemActionMenu& aItemActionMenu )
     {
+    _AKNTRACE_FUNC_ENTER;
     CRegisterEntry* entry( NULL );
 
     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
@@ -122,6 +134,7 @@
             break;
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -132,6 +145,7 @@
 TBool CAknItemActionMenuRegisterArray::RegisterCollectionObserverL(
         CEikMenuBar& aMenuBar, MAknCollectionObserver& aObserver )
     {
+    _AKNTRACE_FUNC_ENTER;
     TBool menuBarFound( EFalse );
     CRegisterEntry* entry( NULL );
     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
@@ -148,6 +162,7 @@
             break;
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     return menuBarFound;
     }
 
@@ -159,6 +174,7 @@
 void CAknItemActionMenuRegisterArray::UnregisterCollectionObserver(
         MAknCollectionObserver& aObserver )
     {
+    _AKNTRACE_FUNC_ENTER;
     CRegisterEntry* entry( NULL );
 
     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
@@ -169,6 +185,7 @@
             entry->ItemActionMenu()->RemoveCollectionObserver( aObserver );
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -196,6 +213,7 @@
 //
 void CAknItemActionMenuRegisterArray::RemoveEntry( TInt aIndex )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( aIndex >= 0 && aIndex < iRegisterArray.Count() )
         {
         CRegisterEntry* entry = iRegisterArray[ aIndex ];
@@ -203,6 +221,7 @@
         entry = NULL;
         iRegisterArray.Remove( aIndex );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -214,8 +233,10 @@
     CAknItemActionMenuRegisterArray::CRegisterEntry::NewL(
             CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu )
     {
+    _AKNTRACE_FUNC_ENTER;
     CRegisterEntry* self = CRegisterEntry::NewLC( aMenuBar, aItemActionMenu );
     CleanupStack::Pop( self );
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
@@ -228,9 +249,11 @@
     CAknItemActionMenuRegisterArray::CRegisterEntry::NewLC(
             CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu )
     {
+    _AKNTRACE_FUNC_ENTER;
     CRegisterEntry* self =
         new ( ELeave ) CRegisterEntry( aMenuBar, aItemActionMenu );
     CleanupStack::PushL( self );
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
@@ -241,7 +264,9 @@
 //
 CAknItemActionMenuRegisterArray::CRegisterEntry::~CRegisterEntry()
     {
+    _AKNTRACE_FUNC_ENTER;
     delete iActionMenu;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -251,7 +276,9 @@
 //
 void CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveMenuBar()
     {
+    _AKNTRACE_FUNC_ENTER;
     iMenuBar = NULL;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -261,6 +288,8 @@
 //
 CEikMenuBar* CAknItemActionMenuRegisterArray::CRegisterEntry::MenuBar()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return iMenuBar;
     }
 
@@ -271,8 +300,10 @@
 //
 void CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveItemActionMenu()
     {
+    _AKNTRACE_FUNC_ENTER;
     delete iActionMenu;
     iActionMenu = NULL;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -283,6 +314,8 @@
 CAknItemActionMenu*
     CAknItemActionMenuRegisterArray::CRegisterEntry::ItemActionMenu()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return iActionMenu;
     }
 
--- a/uifw/EikStd/coctlsrc/aknstyluspopupmenucontent.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknstyluspopupmenucontent.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -795,6 +795,10 @@
         {
         if ( Observer() ) 
             {
+            if ( iExtension ) 
+                {
+                iExtension->iInformObserver = EFalse;
+                } 
             // this will close the stylus popup menu
             TRAP_IGNORE( Observer()->HandleControlEventL( this,
                 MCoeControlObserver::EEventRequestExit ) );
@@ -804,6 +808,10 @@
         {
         if ( Observer() ) 
             {
+            if ( iExtension ) 
+                {
+                iExtension->iInformObserver = EFalse;
+                } 
             // this will close the stylus popup menu
             TRAP_IGNORE( Observer()->HandleControlEventL( this,
                 MCoeControlObserver::EEventRequestCancel ) );
@@ -1020,7 +1028,7 @@
 
         if ( aItem < iLastVisibleItem )
             {
-            AknListUtils::DrawSeparator( aGc, rect, textColor );
+            AknListUtils::DrawSeparator( aGc, rect, textColor, skin );
             }
 		}
     }
@@ -1287,7 +1295,7 @@
         iItems[i]->iRect = itemRect;
         }
 
-    if ( lastItem == iItems.Count() )
+    if ( lastItem == iItems.Count() || ( Rect().Height() % singleItemHeight ) == 0 )
         {
         // substract the partially visible item
         --lastItem;
@@ -1404,6 +1412,10 @@
     {
     if ( Observer() )
         {
+        if ( iExtension ) 
+            {
+            iExtension->iInformObserver = EFalse;
+            } 
         // this will close the stylus popup menu
         TRAP_IGNORE( Observer()->HandleControlEventL( this,
             MCoeControlObserver::EEventRequestExit ) );
--- a/uifw/EikStd/coctlsrc/eikcba.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/eikcba.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -56,7 +56,7 @@
 #include <aknitemactionmenu.h>
 #include "akncollectionobserver.h"
 #include "aknitemactionmenuregister.h"
-
+#include "akntrace.h"
 /**
  * Color value for transparent pixel (ARGB format).
  */
@@ -76,12 +76,16 @@
 inline TAknWindowComponentLayout DoCompose(TAknWindowComponentLayout aLine1, 
     TAknWindowComponentLayout aLine2) 
     { 
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return TAknWindowComponentLayout::Compose(aLine1, aLine2); 
     }
 
 inline TAknTextComponentLayout DoComposeText(TAknWindowComponentLayout aLine1, 
     TAknTextComponentLayout aLine2) 
     { 
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return TAknWindowComponentLayout::ComposeText(aLine1, aLine2); 
     }
     
@@ -91,6 +95,8 @@
 */
 static TBool IsAreaSideRightPaneActive()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return EFalse;
     }
 
@@ -100,6 +106,7 @@
 */
 static TBool IsMskEnabledLayoutActive()
     {
+    _AKNTRACE_FUNC_ENTER;
     TBool result( EFalse );
     
     if ( Layout_Meta_Data::IsMSKEnabled() )
@@ -125,6 +132,7 @@
             }
         }
     
+    _AKNTRACE_FUNC_EXIT;
     return result;
     }
 
@@ -135,6 +143,8 @@
  */
 static TBool IsBitmapUpdateNeeded( CFbsBitmap* aOldBitmap, const TSize& aSize )
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return !aOldBitmap || ( aOldBitmap->SizeInPixels() != aSize );
     }
 
@@ -240,19 +250,24 @@
                                           iRightFrameMask( NULL ),
                                           iItemActionMenu( NULL )
         {
+        _AKNTRACE_FUNC_ENTER;
+        _AKNTRACE_FUNC_EXIT;
         };
     
     static CEikCbaExtension* NewL( CEikCba& aOwner )
         {
+        _AKNTRACE_FUNC_ENTER;
         CEikCbaExtension* self = new (ELeave) CEikCbaExtension( aOwner );
         CleanupStack::PushL( self );
         self->ConstructL();
         CleanupStack::Pop( self );
+        _AKNTRACE_FUNC_EXIT;
         return self;
         }
     
     void ConstructL() 
         {
+        _AKNTRACE_FUNC_ENTER;
         // Wallpaper is not drawn by embedded CBA.
         if ( !iOwner.Flags().IsSet( ECbaEmbedded ) )
             {
@@ -276,10 +291,12 @@
             AknItemActionMenuRegister::RegisterCollectionObserverL(
                     *this );
             }
+        _AKNTRACE_FUNC_EXIT;
         }
     
     ~CEikCbaExtension() 
         {
+        _AKNTRACE_FUNC_ENTER;
         if ( iOwner.Flags().IsSet( ECbaSingleClickEnabled ) )
             {
             AknItemActionMenuRegister::UnregisterCollectionObserver( *this );
@@ -297,19 +314,24 @@
         delete iLskPostingOverlayBitmap;
         delete iRskPostingOverlayBitmap;
         delete iBmpFile;
+        _AKNTRACE_FUNC_EXIT;
         }
     
     /** From base class MCenRepNotifyHandlerCallback */
     void HandleNotifyInt( TUint32 /*aId*/, TInt aNewValue )
         {
+        _AKNTRACE_FUNC_ENTER;
         iWallpaperInUse = aNewValue;
         iOwner.SetSkinBackgroundId( KAknsIIDNone );
+        _AKNTRACE_FUNC_EXIT;
         }
         
     void UpdateSoftkeyFrameL( TBool aForcedUpdate )
         {
+        _AKNTRACE_FUNC_ENTER;
         if ( !AknLayoutUtils::PenEnabled() )
             {
+            _AKNTRACE_FUNC_EXIT;
             return;
             }
         TAknLayoutRect cbarect;
@@ -439,6 +461,7 @@
         iUpdateFrameInnerRect = innerRect;
         iUpdateMSKFrameOuterRect = mskOuterRect;
         iUpdateMskFrameInnerRect = mskInnerRect;
+        _AKNTRACE_FUNC_EXIT;
         }
 
 
@@ -453,6 +476,7 @@
      */
     static void MergeMaskInto16MA( CFbsBitmap* aMask, CFbsBitmap* aDestBitmap )
         {
+        _AKNTRACE_FUNC_ENTER;
         // aMask display mode must be EGray256.
         // aMask must not be compressed in RAM.
         // aDestBitmap display mode must be EColor16MA.
@@ -490,6 +514,7 @@
             }
         aDestBitmap->UnlockHeap();
         aMask->UnlockHeap();
+        _AKNTRACE_FUNC_EXIT;
         }
 
     /**
@@ -506,6 +531,7 @@
             const TRect& aRect,
             CEikCbaButton* aButton )
         {
+        _AKNTRACE_FUNC_ENTER;
         delete aBitmap;
         aBitmap = NULL;
 
@@ -559,6 +585,7 @@
         CleanupStack::PopAndDestroy( 2, bitmapDevice );
         CleanupStack::Pop( bitmap );
         aBitmap = bitmap;
+        _AKNTRACE_FUNC_EXIT;
         }
     
     /**
@@ -573,6 +600,7 @@
             CEikCbaButton* aRightButton,
             TInt aAknLayoutFlags )
         {
+        _AKNTRACE_FUNC_ENTER;
         TRect rightSoftKeyButtonRect;
         TRect leftSoftKeyButtonRect;
         if( aAknLayoutFlags & EAknLayoutCbaInRightPane )
@@ -685,6 +713,7 @@
                 iRskPostingOverlayBitmap,
                 rightSoftKeyButtonRect,
                 aRightButton );
+        _AKNTRACE_FUNC_EXIT;
         }
 
     /**
@@ -695,7 +724,9 @@
      */
     void SetItemActionMenu( CAknItemActionMenu* aItemActionMenu )
         {
+        _AKNTRACE_FUNC_ENTER;
         iItemActionMenu = aItemActionMenu;
+        _AKNTRACE_FUNC_EXIT;
         }
 
     /**
@@ -707,12 +738,14 @@
      */
     void CollectionChanged( TBool aCollectionVisible )
         {
+        _AKNTRACE_FUNC_ENTER;
         // Do not update state if invisible collection tries to enable sk
         if ( aCollectionVisible
                 || iOwner.Flags().IsClear( ECbaItemSoftkeyDisabled ) )
             {
             iOwner.UpdateItemSpecificSoftkey();
             }
+        _AKNTRACE_FUNC_EXIT;
         }
 
     /**
@@ -723,15 +756,18 @@
      */
     TBool Active() const
         {
+        _AKNTRACE_FUNC_ENTER;
+        _AKNTRACE_FUNC_EXIT;
         return iOwner.IsVisible() && !iOwner.IsEmpty();
         }
     
     /*
      * Using the special theme Id draw background
      */
-    void DrawSemiTransparencyL(CWindowGc& aGc, 
-            const TRect& aRect)
-    	{
+    void DrawSemiTransparency( CWindowGc& aGc, 
+            const TRect& aRect )
+        {
+        _AKNTRACE_FUNC_ENTER;
         aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
         aGc.SetBrushColor( TRgb(128, 128, 128, 64) );
         aGc.Clear();
@@ -810,7 +846,8 @@
                     SemiButtonID,
                     SemiButtonCenterID);
             }                    
-    	}
+        _AKNTRACE_FUNC_EXIT;
+        }
 public:
     
     CEikCba&               iOwner;
@@ -891,22 +928,28 @@
 CEikCba* CEikCba::NewL(const CEikCba* aPrevious, MEikCommandObserver* aCommandObserver, 
     RWindowGroup* aParentWg)
     { 
+    _AKNTRACE_FUNC_ENTER; 
     CEikCba* self = CEikCba::NewLC(aPrevious, aCommandObserver, aParentWg); // static
     CleanupStack::Pop( self );
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
 CEikCba* CEikCba::NewL(TInt aResourceId, const CEikCba* aPrevious, 
     MEikCommandObserver* aCommandObserver, RWindowGroup* aParentWg)
     { 
+    _AKNTRACE_FUNC_ENTER; 
     CEikCba* self = CEikCba::NewLC(aResourceId, aPrevious, aCommandObserver, aParentWg); // static
     CleanupStack::Pop( self );
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
 CEikCba* CEikCba::NewLC(const CEikCba* aPrevious, MEikCommandObserver* aCommandObserver, 
     RWindowGroup* aParentWg)
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return CEikCba::NewLC(KNoResource, aPrevious, aCommandObserver, aParentWg); // static
     }
 
@@ -914,6 +957,8 @@
     MEikCommandObserver* aCommandObserver, RWindowGroup* aParentWg,
     TUint aFlags)
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return CEikCba::NewLC(KNoResource, aPrevious, aCommandObserver,
         aParentWg, aFlags);
     }
@@ -921,10 +966,12 @@
 CEikCba* CEikCba::NewLC(TInt aResourceId, const CEikCba* aPrevious,
     MEikCommandObserver* aCommandObserver, RWindowGroup* aParentWg)
     { 
+    _AKNTRACE_FUNC_ENTER; 
     CEikCba* self = new(ELeave) CEikCba(aPrevious, aCommandObserver, aParentWg); // static
     CleanupStack::PushL(self);
     self->ConstructL(aResourceId);
     AKNTASHOOK_ADDL( self, "CEikCba" );
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
@@ -932,11 +979,13 @@
     MEikCommandObserver* aCommandObserver, RWindowGroup* aParentWg,
     TUint aFlags)
     {
+    _AKNTRACE_FUNC_ENTER;
     CEikCba* self = new(ELeave) CEikCba(aPrevious, aCommandObserver,
         aParentWg, aFlags);
     CleanupStack::PushL(self);
     self->ConstructL(aResourceId);
     AKNTASHOOK_ADDL( self, "CEikCba" );
+    _AKNTRACE_FUNC_EXIT;
     return self;
     }
 
@@ -946,6 +995,7 @@
 */
 CEikCba::~CEikCba()
     {
+    _AKNTRACE_FUNC_ENTER;
     AKNTASHOOK_REMOVE();
     // Revert the clock and indicator pane area of status pane
     // to use the previous skin background.
@@ -990,6 +1040,7 @@
 #endif // RD_ENHANCED_CBA
 
     delete iExtension;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 /**
@@ -1000,6 +1051,7 @@
     TUint aFlags)
     : iLink(aPrevious), iCommandObserver(aCommandObserver), iParentWg(aParentWg)
     {
+    _AKNTRACE_FUNC_ENTER;
     if (aFlags & CEikButtonGroupContainer::EIsEmbedded)
         {
         // CBA is embedded in another component (eg. dialog/popup/setting page
@@ -1011,7 +1063,7 @@
         iFlags.Set( ECbaParentAsControl );
         }
     
-	if ( aFlags & CEikButtonGroupContainer::EDelayActivation )
+    if ( aFlags & CEikButtonGroupContainer::EDelayActivation )
         {
         iFlags.Set( ECbaActivationDelayed );
         }    
@@ -1024,11 +1076,13 @@
         }
 
     SetNonFocusing();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::SetContainerWindowL( const CCoeControl& aContainer )
     {
+    _AKNTRACE_FUNC_ENTER;
     // CCoeControl::SetContainerWindowL closes the previously own window and
     // deactivates control. Therefore store the activation status and re-set
     // it after the container window has been set.
@@ -1212,15 +1266,19 @@
         {
         CCoeControl::SetContainerWindowL( aContainer );            
         }        
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::ActivateL()
     {
+    _AKNTRACE_FUNC_ENTER;
     CCoeControl::ActivateL();
+    _AKNTRACE_FUNC_EXIT;
     }
     
 void CEikCba::BaseConstructL()
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iFlags.IsSet( ECbaEmbedded ) && iFlags.IsSet( ECbaParentAsControl ) )
         {
         __ASSERT_DEBUG( iParentWg, User::Invariant() );
@@ -1383,27 +1441,18 @@
                 }
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::ConstructL(TInt aResourceId)
     {
+    _AKNTRACE_FUNC_ENTER;
     if (aResourceId != KNoResource)
         {
         TResourceReader reader;
         iCoeEnv->CreateResourceReaderLC(reader, aResourceId);
         iCbaFlags = reader.ReadInt32();        // flags resource
-        
-        const TUid KActiveIdle2Uid = {0x102750F0};
-        CEikApplication* app = CEikonEnv::Static()->EikAppUi()->Application();
-        if ( app && app->AppDllUid() == KActiveIdle2Uid )
-            {
-            //it's intereting that the transparent can't not be set after the CBA was created for a while.
-            //it just can be done in the CBA constructor, maybe some defect in Window server, but I'm not sure
-            //about that, in order to fix the defect I have hardcode the transparent flag for homescreen the only usercase.
-            //it should be fixed later.  
-            iCbaFlags |= EEikCbaFlagSemiTransparent;
-            }
-    
+            
         // If using enhanced cba.
         if ( (iCbaFlags & EEikEnhancedButtonGroup) == EEikEnhancedButtonGroup ) 
             { 
@@ -1559,11 +1608,13 @@
 
     // Set CBA faded in case the softkeys are empty.
     SetFadeState();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::ConstructFromResourceL(TResourceReader& aReader)
     {
+    _AKNTRACE_FUNC_ENTER;
     BaseConstructL();
     CreateScrollBarFrameL();
     TGulAlignmentValue anAlignment[3] = {EHLeftVCenter, EHRightVCenter, EHCenterVCenter};
@@ -1654,16 +1705,21 @@
 
     // Set CBA faded in case the softkeys are empty.
     SetFadeState();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 TInt CEikCba::MaxCommands() const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return KMaxSeries60Softkeys;
     }
 
 TInt CEikCba::MSKEnabledInPlatform() const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return iMSKEnabledInPlatform;
     }
 
@@ -1674,32 +1730,38 @@
 //
 void CEikCba::SetMSKIconL()
     {
+    _AKNTRACE_FUNC_ENTER;
     // MSK is not supported by dialog-embedded CBAs.
     if ( iFlags.IsSet( ECbaInsideDialog ) || iFlags.IsSet( ECbaEmbedded ) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
         
     if ( !MskAllowed() )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;         
         }
         
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
     if ( !skin )
         { 
+        _AKNTRACE_FUNC_EXIT;        
         return;
         }
     if( iExtension->iIfMskIconSet )
         {
-    //	UpdateIconL();
-    	return;
+    //    UpdateIconL();
+        _AKNTRACE_FUNC_EXIT;
+        return;
         }
     TEikGroupControl &gCtrl = iControlArray->At( KControlArrayCBAButtonMSKPosn );
 
     CEikCbaButton *button = static_cast<CEikCbaButton*>( gCtrl.iControl );
     if ( !button )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
    
@@ -1836,6 +1898,7 @@
         }
     
     button->SetContainerWindowL( *this );
+    _AKNTRACE_FUNC_EXIT;
     }
 
 EXPORT_C TBool CEikCba::UpdateMSKIconL( const TAknsItemID& aId,
@@ -1844,13 +1907,15 @@
     const TInt32 aBmpM,
     TBool aEnable )
     {
+    _AKNTRACE_FUNC_ENTER;
     iExtension->iIfMskIconSet = EFalse;
 
     // MSK is not supported by dialog-embedded CBAs.
     if (!aEnable)
         {
-    	SetMSKIconL();
-    	return ETrue;
+        SetMSKIconL();
+        _AKNTRACE_FUNC_EXIT;
+        return ETrue;
         }
 
     delete iExtension->iBmpFile;
@@ -1863,6 +1928,7 @@
     iExtension->iBmp = aBmp;
     iExtension->iBmpM = aBmpM;
     
+    _AKNTRACE_FUNC_EXIT;
     return UpdateIconL();
     }
 
@@ -1873,6 +1939,7 @@
 //
 EXPORT_C void CEikCba::EnableItemSpecificSoftkey( TBool aEnable )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iFlags.IsSet( ECbaSingleClickEnabled ) )
         {
         iFlags.Assign( ECbaItemSpecificSoftkeyInUse, aEnable );
@@ -1897,21 +1964,26 @@
                 }
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::SetMSKCommandObserver(MEikCommandObserver* aCommandObserver)
     {
+    _AKNTRACE_FUNC_ENTER;
     // aCommandObserver set to NULL when removing observer.
     iMSKCommandObserver = aCommandObserver;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::UpdateCbaLabels(TBool aScrollerOn)
     {
+    _AKNTRACE_FUNC_ENTER;
     // This method is called only from scrollbar that has nothing to do with
     // dialog-embedded CBAs -> ignore the call.
     if ( iFlags.IsSet( ECbaInsideDialog ) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
         
@@ -1928,37 +2000,48 @@
     // Change of text may affect layout.
     SizeChanged();
     DrawDeferred() ;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::SetSBFrameObserver(MEikScrollBarObserver* aObserver)
     {
+    _AKNTRACE_FUNC_ENTER;
     if(iSBFrame)
         {
         iSBFrame->SetScrollBarFrameObserver(aObserver);
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::SetScrollBarModelL(TEikScrollBarModel* aModel)
     {
+    _AKNTRACE_FUNC_ENTER;
     if(iSBFrame)
         {
         VScrollBarAsControl()->SetModelL(aModel);
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 const CEikCbaScrollBarFrame* CEikCba::ScrollBarFrame() const
     { 
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;    
     return STATIC_CAST(const CEikCbaScrollBarFrame*, iSBFrame); 
     }
 
 CAknScrollBar* CEikCba::VScrollBarAsControl()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return STATIC_CAST(CAknScrollBar*, VScrollBarAsGroupControl().iControl);
     }
 
 void CEikCba::InsertControlL(TEikGroupControl& aGroupControl,TInt aIndex)
     {
+    _AKNTRACE_FUNC_ENTER;
     iControlArray->InsertL(aIndex,aGroupControl); // Takes ownership at this point.
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -1968,6 +2051,7 @@
                            const CFbsBitmap* /*aBitmap*/,
                            const CFbsBitmap* /*aMask*/ )
     {
+    _AKNTRACE_FUNC_ENTER;
     // We need to check if this call changes the softkeys from being
     // empty to having a command or vice versa to be able to maintain
     // correct fade state.
@@ -2010,11 +2094,13 @@
         }
 
     ReportContentChangedEvent();      
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::SetCommandL(TInt aPosition,TInt aResourceId)
     {
+    _AKNTRACE_FUNC_ENTER;
     TResourceReader reader;
     iCoeEnv->CreateResourceReaderLC(reader,aResourceId);
     TInt version = reader.ReadInt8(); // version
@@ -2053,6 +2139,7 @@
     CleanupStack::PopAndDestroy(); // reader
     
     ReportContentChangedEvent();
+    _AKNTRACE_FUNC_EXIT;
     }
     
 /**
@@ -2062,6 +2149,7 @@
 */
 void CEikCba::SetCommandSetL(TInt aResourceId)
     {
+    _AKNTRACE_FUNC_ENTER;
     TResourceReader reader;
     iCoeEnv->CreateResourceReaderLC(reader, aResourceId);
 
@@ -2071,6 +2159,7 @@
         { 
         CleanupStack::PopAndDestroy(); // reader
         OfferCommandListL( aResourceId );
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
     
@@ -2172,12 +2261,15 @@
     // Force labels to be re-formatted...
     SizeChanged();
     ReportContentChangedEvent();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::AddCommandL(TInt /*aPosition*/, TInt /*aCommandId*/, const TDesC* /*aText*/, 
     const CFbsBitmap* /*aBitmap*/, const CFbsBitmap* /*aMask*/)
     {
+    _AKNTRACE_FUNC_ENTER;
     User::Leave(KErrNotSupported);
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -2185,6 +2277,7 @@
                                                TInt aCommandId,
                                                const TDesC* aText)
     {
+    _AKNTRACE_FUNC_ENTER;
     // We need to check if this call changes the softkeys from being
     // empty to having a command or vice versa to be able to maintain
     // correct fade state.
@@ -2232,6 +2325,7 @@
         }
 
     ReportContentChangedEvent();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::AddCommandToStackL( TInt aPosition,
@@ -2240,15 +2334,18 @@
                                   const CFbsBitmap* /*aBitmap*/,
                                   const CFbsBitmap* /*aMask*/ )
     {
+    _AKNTRACE_FUNC_ENTER;
 
     AddCommandToStackWithoutSizeChangedL( aPosition, aCommandId, aText);
     // Force labels to be re-formatted...
     SizeChanged();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::AddCommandToStackL(TInt aPosition, TInt aResourceId)
     {
+    _AKNTRACE_FUNC_ENTER;
     TResourceReader reader;
     iCoeEnv->CreateResourceReaderLC(reader,aResourceId);
     TUint8 version = (TUint8)reader.ReadInt8();
@@ -2267,10 +2364,12 @@
     CleanupStack::PopAndDestroy(); // reader
       
     ReportContentChangedEvent();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::AddCommandSetToStackL(TInt aResourceId)
     {
+    _AKNTRACE_FUNC_ENTER;
     TResourceReader reader;
     iCoeEnv->CreateResourceReaderLC(reader,aResourceId);
 
@@ -2340,20 +2439,26 @@
     // Force labels to be re-formatted...
     SizeChanged();
     ReportContentChangedEvent();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::SetDefaultCommand(TInt /*aCommandId*/)
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TSize CEikCba::CalcMinimumSizeL(TInt /*aResourceId*/)
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return MinimumSize();
     }
 
 
 void CEikCba::RemoveCommandFromStack( TInt aPosition, TInt aCommandId )
     {
+    _AKNTRACE_FUNC_ENTER;
     // We need to check if this call changes the softkeys from being
     // empty to having a command or vice versa to be able to maintain
     // correct fade state.
@@ -2406,16 +2511,20 @@
 
     DrawDeferred();
     ReportContentChangedEvent();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::RemovePreviousCommandWithoutSizeChanged(TInt aPosition)
     {
+    _AKNTRACE_FUNC_ENTER;
     TEikGroupControl& groupCtrl = (*iControlArray)[aPosition];
     STATIC_CAST(CEikCbaButton*, groupCtrl.iControl)->RemovePreviousCommand();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::RemovePreviousCommand(TInt aPosition)
     {
+    _AKNTRACE_FUNC_ENTER;
     RemovePreviousCommandWithoutSizeChanged( aPosition );
     // If MSK or left CBA was changed, this sets MSK icon accordingly.
     TRAP_IGNORE( SetMSKIconL() ); 
@@ -2423,16 +2532,20 @@
     // Force labels to be re-formatted...
     SizeChanged();
     ReportContentChangedEvent();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 TInt CEikCba::CommandPos(TInt aCommandId) const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return IndexById(aCommandId);
     }
 
 void CEikCba::DimCommand(TInt aCommandId,TBool aDimmed)
     {
+    _AKNTRACE_FUNC_ENTER;
     CCoeControl* control( ButtonById( aCommandId ) );
     if ( control )
         {
@@ -2441,19 +2554,24 @@
             control->SetDimmed( aDimmed );
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TBool CEikCba::IsCommandDimmed(TInt aCommandId) const
     {
+    _AKNTRACE_FUNC_ENTER;
     if( ButtonById(aCommandId) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return ButtonById(aCommandId)->IsDimmed();
         }
+    _AKNTRACE_FUNC_EXIT;
     return EFalse;
     }
 
 void CEikCba::MakeCommandVisible(TInt aCommandId, TBool aVisible)
     {
+    _AKNTRACE_FUNC_ENTER;
     CCoeControl* control( ButtonById( aCommandId ) );
     if ( control )
         {
@@ -2462,19 +2580,25 @@
             control->MakeVisible( aVisible );
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TBool CEikCba::IsCommandVisible(TInt aCommandId) const
     {
+    _AKNTRACE_FUNC_ENTER;
     if( ButtonById(aCommandId) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return ButtonById(aCommandId)->IsVisible();
         }
+    _AKNTRACE_FUNC_EXIT;
     return EFalse;        
     }
 
 void CEikCba::AnimateCommand(TInt /*aCommandId*/)
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -2484,8 +2608,10 @@
 //
 void CEikCba::DimCommandByPosition( TInt aPosition, TBool aDimmed )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( aPosition >= iControlArray->Count() )
         { 
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
 
@@ -2494,6 +2620,7 @@
         TEikGroupControl& groupCtrl = ( *iControlArray )[ aPosition ];
         groupCtrl.iControl->SetDimmed( aDimmed );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -2503,12 +2630,15 @@
 //
 TBool CEikCba::IsCommandDimmedByPosition( TInt aPosition ) const
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( aPosition >= iControlArray->Count() ) 
         {
+        _AKNTRACE_FUNC_EXIT;
         return EFalse;    
         }
 
     TEikGroupControl& groupCtrl = (*iControlArray)[aPosition];
+    _AKNTRACE_FUNC_EXIT;
     return groupCtrl.iControl->IsDimmed();
     }
 
@@ -2519,8 +2649,10 @@
 //
 void CEikCba::MakeCommandVisibleByPosition( TInt aPosition, TBool aVisible )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( aPosition >= iControlArray->Count() )
         { 
+        _AKNTRACE_FUNC_EXIT;
         return;    
         }
 
@@ -2539,27 +2671,34 @@
             groupCtrl.iControl->DrawDeferred();
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 TBool CEikCba::IsCommandVisibleByPosition(TInt aPosition) const
     {
+    _AKNTRACE_FUNC_ENTER;
     if (aPosition >= iControlArray->Count()) 
         {
+        _AKNTRACE_FUNC_EXIT;
         return EFalse;    
         }
     TEikGroupControl& groupCtrl = (*iControlArray)[aPosition];
 
     if ( !iFlags.IsSet( ECbaInsideDialog ) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return STATIC_CAST(CEikCbaButton*, groupCtrl.iControl)->IsVisible();
         }
         
+    _AKNTRACE_FUNC_EXIT;    
     return !groupCtrl.iControl->IsDimmed();
     }
 
 void CEikCba::AnimateCommandByPosition(TInt /*aPosition*/)
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     }
     
 /*CCoeControl* CEikCba::GroupControlByPosition(TInt aPosition) const
@@ -2580,10 +2719,12 @@
 //
 TRect CEikCba::ButtonRectByPosition( TInt aPosition, TBool aRelativeToScreen )
     {
+    _AKNTRACE_FUNC_ENTER;
     TRect rect( 0, 0, 0, 0 );
     
     if ( aPosition >= iControlArray->Count() || aPosition < 0 )
         {
+        _AKNTRACE_FUNC_EXIT;
         return rect;
         }
 
@@ -2753,25 +2894,32 @@
             }
         }
         
+    _AKNTRACE_FUNC_EXIT;
     return rect;
     }
 
 
 CCoeControl* CEikCba::AsControl()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return this;
     }
 
 const CCoeControl* CEikCba::AsControl() const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return this;
     }
 
 
 void CEikCba::SetBoundingRect( const TRect& /*aBoundingRect*/ )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iFlags.IsSet( ECbaEmbedded ) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
 
@@ -2788,6 +2936,7 @@
     // query control. 
     if ( iFlags.IsSet( ECbaInsideDialog ) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
 
@@ -3062,6 +3211,7 @@
         
         DrawDeferred();
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -3072,14 +3222,17 @@
 //
 void CEikCba::ReduceRect( TRect& aBoundingRect ) const
     {
+    _AKNTRACE_FUNC_ENTER;
     // CBA inside Popup/Query Input does not reduce bounding rect
     if ( iFlags.IsSet( ECbaEmbedded ) || iFlags.IsSet( ECbaInsideDialog ) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
     
     if ( !IsVisible() )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
 
@@ -3201,49 +3354,68 @@
                 }
             }   
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 CCoeControl* CEikCba::GroupControlById(TInt aCommandId)
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return ButtonById(aCommandId);
     }
 
 
 CCoeControl* CEikCba::GroupControlById(TInt aCommandId) const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return ButtonById(aCommandId);
     }
 
 TInt CEikCba::CommandId(TInt aCommandPos) const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return (*iControlArray)[aCommandPos].iId;
     }
 
 TInt CEikCba::ButtonCount() const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return (iControlArray->Count()-1); // -1 for scroll bar;
     }
 
 CEikCommandButton* CEikCba::GroupControlAsButton(TInt /*aCommandId*/) const 
     {
+    _AKNTRACE_FUNC_ENTER;
     // It is not possible to convert a CBA button to a CEikCommandButton.
     // Please use an interface that does not use a CEikCommandButton conversion,
     // e.g. CEikButtonGroupContainer::SetCommandL().
 #if defined(_DEBUG)
     Panic(EEikPanicCBACannotConvertToCEikCommandButton);
 #endif
+    _AKNTRACE_FUNC_EXIT;
     return NULL;
     }
 
 TUint CEikCba::ButtonGroupFlags() const 
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return iCbaFlags ;
     }
 
 EXPORT_C void CEikCba::SetButtonGroupFlags(TInt aFlags)
     {
+    _AKNTRACE_FUNC_ENTER;
     iCbaFlags = aFlags;
+    
+    //has not supported semi-transparent, ignore the flag at this moment.
+    //TODO: if the tranparent style CBA is approved and the new icon was delivered, open it again.
+    iCbaFlags &= ~EEikCbaFlagSemiTransparent;
+    
     if (( iCbaFlags & EEikCbaFlagTransparent || iCbaFlags & EEikCbaFlagSemiTransparent ) && 
             CAknEnv::Static()->TransparencyEnabled() )
         {
@@ -3254,13 +3426,13 @@
             Window().SetBackgroundColor( ~0 );
             if ( iExtension && iExtension->iEnablePostingTransparency )
                 {
-               	iExtension->iEnablePostingTransparency = EFalse;        	
-               	delete iExtension->iLskPostingOverlayBitmap;
-               	iExtension->iLskPostingOverlayBitmap = NULL;
-               	delete iExtension->iRskPostingOverlayBitmap;
-               	iExtension->iRskPostingOverlayBitmap = NULL;
-               	BroadcastPostingTransparency( EFalse );
-               	}           
+                   iExtension->iEnablePostingTransparency = EFalse;            
+                   delete iExtension->iLskPostingOverlayBitmap;
+                   iExtension->iLskPostingOverlayBitmap = NULL;
+                   delete iExtension->iRskPostingOverlayBitmap;
+                   iExtension->iRskPostingOverlayBitmap = NULL;
+                   BroadcastPostingTransparency( EFalse );
+                   }           
             }
         else
             {
@@ -3273,6 +3445,7 @@
         }
     
     UpdateFonts();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // -----------------------------------------------------------------------------
@@ -3282,11 +3455,18 @@
 //
 EXPORT_C void CEikCba::SetSkinBackgroundId( const TAknsItemID& aIID )
     {
+    _AKNTRACE_FUNC_ENTER;
     // Skin background is not drawn by embedded CBA.
     if ( iFlags.IsSet( ECbaEmbedded ) )
         {
+    	iPopupVisible = ETrue;
+    	_AKNTRACE_FUNC_EXIT;
         return;
         }
+    else
+        {
+        iPopupVisible = EFalse;
+        }
 
     if ( iBgIID != KAknsIIDNone )
         {
@@ -3337,18 +3517,22 @@
             iBgIID,
             CEikStatusPaneBase::EDrawDeferred );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TKeyResponse CEikCba::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
     {
+    _AKNTRACE_FUNC_ENTER;
     if (aType != EEventKey)
         {
+        _AKNTRACE_FUNC_EXIT;
         return EKeyWasNotConsumed;
         }
 
     // Return immediately if the control is invisible.
     if (!IsVisible() && !(iCbaFlags&EAknCBAFlagRespondWhenInvisible))
         {
+        _AKNTRACE_FUNC_EXIT;
         return EKeyWasNotConsumed;
         }
 
@@ -3390,6 +3574,7 @@
                  !(*iControlArray)[KControlArrayCBAButton1Posn].iControl->IsVisible() && 
                  !(iCbaFlags & EAknCBAFlagRespondWhenInvisible) )
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return EKeyWasConsumed;
                 }
             TInt shortCommand = (*iControlArray)[KControlArrayCBAButton1Posn].iId;
@@ -3398,6 +3583,7 @@
             // This will pass key event to application - no softkey command is processed.
             if (shortCommand == EAknSoftkeyForwardKeyEvent)
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return EKeyWasNotConsumed;
                 }
 
@@ -3425,6 +3611,7 @@
                  !(*iControlArray)[KControlArrayCBAButton2Posn].iControl->IsVisible() && 
                  !(iCbaFlags&EAknCBAFlagRespondWhenInvisible) )
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return EKeyWasConsumed;
                 }
             TInt shortCommand = (*iControlArray)[KControlArrayCBAButton2Posn].iId;
@@ -3439,6 +3626,7 @@
             // This will pass key event to application - no softkey command is processed.
             if (shortCommand == EAknSoftkeyForwardKeyEvent)
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return EKeyWasNotConsumed;
                 }
 
@@ -3474,6 +3662,7 @@
                  !(*iControlArray)[KControlArrayCBAButtonMSKPosn].iControl->IsVisible() && 
                  !(iCbaFlags&EAknCBAFlagRespondWhenInvisible) )
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return EKeyWasConsumed;
                 }
 
@@ -3483,6 +3672,7 @@
             // This will pass key event to application - no softkey command is processed.
             if (shortCommand == EAknSoftkeyForwardKeyEvent)
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return EKeyWasNotConsumed;
                 }
 
@@ -3530,6 +3720,7 @@
                 !(*iControlArray)[KControlArrayCBAButton1Posn].iControl->IsVisible() && 
                 !(iCbaFlags&EAknCBAFlagRespondWhenInvisible) )
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return EKeyWasConsumed;
                 }
 
@@ -3539,6 +3730,7 @@
             // This will pass key event to application - no softkey command is processed.
             if (shortCommand == EAknSoftkeyForwardKeyEvent)
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return EKeyWasNotConsumed;
                 }
 
@@ -3570,11 +3762,14 @@
             }
         }
         
+    _AKNTRACE_FUNC_EXIT;
     return response;
     }
 
 EXPORT_C void* CEikCba::ExtensionInterface( TUid /*aInterface*/ )
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return NULL;
     }
 
@@ -3587,13 +3782,16 @@
 //
 void CEikCba::HandlePointerEventL( const TPointerEvent& aPointerEvent )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( !AknLayoutUtils::PenEnabled() )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
     else if ( iFlags.IsSet( ECbaInsideDialog ) )
         {
         CCoeControl::HandlePointerEventL( aPointerEvent );
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
 
@@ -3681,8 +3879,8 @@
         {
         if( button1->IsDimmed() )
             {
-        	CCoeControl::HandlePointerEventL( aPointerEvent );
-        	return;
+            CCoeControl::HandlePointerEventL( aPointerEvent );
+            return;
             }
         if ( button1->IsVisible() )
             {
@@ -3745,8 +3943,8 @@
         {              
         if( button2->IsDimmed() )
             {
-        	CCoeControl::HandlePointerEventL( aPointerEvent );
-        	return;
+            CCoeControl::HandlePointerEventL( aPointerEvent );
+            return;
             }             
         if ( button2->IsVisible() )
             {
@@ -3811,8 +4009,8 @@
         {
         if( buttonMSK->IsDimmed() )
             {
-        	CCoeControl::HandlePointerEventL( aPointerEvent );
-        	return;
+            CCoeControl::HandlePointerEventL( aPointerEvent );
+            return;
             }
         if  ( buttonMSK->IsVisible() )
             {
@@ -3963,8 +4161,10 @@
                 if ( (*iControlArray)[i].iControl == grabber )
                     {
                     if ( !IsVisible() )
+                        {
+                        _AKNTRACE_FUNC_EXIT;
                         return;
-                    
+                        }
                     // Send the button command to command observer.
                     TInt shortCommand = (*iControlArray)[i].iId;
                     if ( shortCommand &&
@@ -3984,11 +4184,13 @@
                 }
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 TSize CEikCba::MinimumSize()
     {
+    _AKNTRACE_FUNC_ENTER;
     TSize size = CEikControlGroup::MinimumSize();
     size.iWidth = iAvkonAppUi->ApplicationRect().Width();
     const TInt count = iControlArray->Count();
@@ -4000,6 +4202,7 @@
         {
         size.iHeight = Max(size.iHeight, iLink->Size().iHeight);
         }
+    _AKNTRACE_FUNC_EXIT;
     // Add a standard margin from the laf.
     return size;
     }
@@ -4012,6 +4215,7 @@
 */
 void CEikCba::GetColorUseListL(CArrayFix<TCoeColorUse>& aColorUseList) const
     {
+    _AKNTRACE_FUNC_ENTER;
     CEikControlGroup::GetColorUseListL(aColorUseList);
         
     TInt commonAttributes = TCoeColorUse::ESurrounds|TCoeColorUse::EActive|TCoeColorUse::ENormal|
@@ -4026,6 +4230,7 @@
     colorUse.SetLogicalColor(EColorToolbarBackground);
     colorUse.SetUse(TCoeColorUse::EBack|commonAttributes);
     aColorUseList.AppendL(colorUse);
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -4036,6 +4241,7 @@
 //
 void CEikCba::HandleResourceChange( TInt aType )
     {
+    _AKNTRACE_FUNC_ENTER;
     CEikControlGroup::HandleResourceChange( aType );
     
     switch ( aType )
@@ -4097,6 +4303,7 @@
             {
             if ( iFlags.IsSet( ECbaInsideDialog ) )
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return;
                 }
 
@@ -4193,11 +4400,13 @@
             break;
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::DoSkinChange()
     {
+    _AKNTRACE_FUNC_ENTER;
     iExtension->iIfSkinChanged = ETrue;
     DoSetLayers( KAknsIIDNone );
     iExtension->iIfSkinChanged = EFalse;
@@ -4214,10 +4423,12 @@
     //Skin change uses DrawNow to flus draw cache before layoutchange.
     DrawNow();
     iFlags.Clear(ECbaChangeRecordedSkin);
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::DoColorChange()
     {
+    _AKNTRACE_FUNC_ENTER;
     iBrushAndPenContext->SetBrushColor(iEikonEnv->ControlColor(EColorToolbarBackground, *this));
     iBrushAndPenContext->SetPenColor(iEikonEnv->ControlColor(EColorToolbarText, *this));
     Window().SetBackgroundColor(iEikonEnv->ControlColor(EColorToolbarBackground, *this));
@@ -4226,11 +4437,13 @@
     TRAP_IGNORE( SetMSKIconL() );
     SizeChanged();
     iFlags.Clear(ECbaChangeRecordedColor);
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::DoLayoutChange()
     {
+    _AKNTRACE_FUNC_ENTER;
     SetBoundingRect( TRect() );
 
     UpdateFonts();
@@ -4274,21 +4487,26 @@
         }
         
     iFlags.Clear( ECbaChangeRecordedLayout );
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::HandleScrollEventL(CEikScrollBar* /*aScrollBar*/, TEikScrollEvent /*aEventType*/)
     {
+    _AKNTRACE_FUNC_ENTER;
     User::Leave(KErrNotSupported);
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TTypeUid::Ptr CEikCba::MopSupplyObject(TTypeUid aId)
     {
+    _AKNTRACE_FUNC_ENTER;
     if (aId.iUid == MAknsControlContext::ETypeId)
         {
         if ( AknLayoutFlags() & EAknLayoutCbaInControlPane ||
              AknLayoutFlags() & EAknLayoutCbaInRightPane )
             {
+            _AKNTRACE_FUNC_EXIT;
             return MAknsControlContext::SupplyMopObject( aId, iMLBgContext );
             }
         else
@@ -4296,34 +4514,38 @@
             // Always provide top object to mop-chain.
             // Bottom is parent of Top, so bottom is re-drawn
             // automatically when top is drawn.
+            _AKNTRACE_FUNC_EXIT;
             return MAknsControlContext::SupplyMopObject( aId, iStaconBgContextTop );
             }
         }
         
     if ( aId.iUid == CEikCba::ETypeId )
         {
+        _AKNTRACE_FUNC_EXIT;
         return aId.MakePtr( this );
         }
         
+    _AKNTRACE_FUNC_EXIT;
     return CEikControlGroup::MopSupplyObject(aId);
     }
 
 
 void CEikCba::Draw( const TRect& aRect ) const
     {
+    _AKNTRACE_FUNC_ENTER;
     // Embedded CBA doesn't draw anything
     if ( iFlags.IsSet( ECbaInsideDialog ) )
         {
         return;
         }
     
-    if ( iCbaFlags & EEikCbaFlagSemiTransparent )
-        {
-        CWindowGc &gc = SystemGc();
-
-        iExtension->DrawSemiTransparencyL( gc, Rect() );
-        return;
-        }
+//    if ( iCbaFlags & EEikCbaFlagSemiTransparent )
+//        {
+//        CWindowGc &gc = SystemGc();
+//
+//        iExtension->DrawSemiTransparency( gc, Rect() );
+//        return;
+//        }
 
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
     
@@ -4399,14 +4621,18 @@
                     CEikCbaButton* button2 = static_cast<CEikCbaButton*>(
                         (*iControlArray)[KControlArrayCBAButton2Posn].iControl );
                     
-    		        if ( IsMskEnabledLayoutActive() )
+                    if ( IsMskEnabledLayoutActive() )
                         {
                         CEikCbaButton* buttonMSK = static_cast<CEikCbaButton*>(
                             (*iControlArray)[KControlArrayCBAButtonMSKPosn].iControl );
                         
                         CFbsBitmap* middleMask =
                             AknsUtils::GetCachedBitmap( skin, KAknsIIDQgnIndiSctrlSkMaskMiddlePrt );
-                        AknIconUtils::SetSize( middleMask, middleSKSize, EAspectRatioNotPreserved );
+                        if ( middleMask )
+                            {
+                            AknIconUtils::SetSize( middleMask, 
+                                    middleSKSize, EAspectRatioNotPreserved );
+                            }                        
 
                         if( buttonMSK && buttonMSK->PressedDown() )
                             {
@@ -4724,6 +4950,7 @@
             }
         }
     gc.SetOpaque( EFalse );        
+    _AKNTRACE_FUNC_EXIT;    
     }
 
 
@@ -4733,6 +4960,8 @@
 //
 CCoeControl* CEikCba::ButtonById( TInt aCommandId ) const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return ControlById( aCommandId );
     }
 
@@ -4743,27 +4972,33 @@
 //
 void CEikCba::CreateScrollBarFrameL()
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( !iSBFrame )
         {
         iSBFrame = new (ELeave) CEikCbaScrollBarFrame( this, this, ETrue );
         }
     iSBFrame->ConstructL();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 TEikGroupControl CEikCba::VScrollBarAsGroupControl()
     {
+    _AKNTRACE_FUNC_ENTER;
     // Extracts vertical scroll bar from the scroll bar frame.       
     TEikGroupControl groupCtrl(iSBFrame->VerticalScrollBar(), 0, 
         KCbaScrollBarButtonWidth,TEikGroupControl::ESetLength);
+    _AKNTRACE_FUNC_EXIT;
     return groupCtrl;
     }
 
 void CEikCba::InsertScrollBarL()
     {
+    _AKNTRACE_FUNC_ENTER;
     TEikGroupControl SBGroupCtrl = VScrollBarAsGroupControl();
     // Insert vertical scroll bar into cba control group.
     InsertControlL(SBGroupCtrl, KControlArrayScrollBarPosn);
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -4773,6 +5008,7 @@
 //
 void CEikCba::CreateArrowHeadScrollBarL()
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iSBFrame )
         {
         iSBFrame->SwitchToArrowHeadScrollBarL();
@@ -4783,21 +5019,25 @@
             }
         InsertScrollBarL();
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::SizeChanged()
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iFlags.IsSet( ECbaInsideDialog ) )
         {
         Window().SetNonFading( EFalse );
         SizeChangedInsideDialog();
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
     else if ( iFlags.IsSet( ECbaEmbedded ) )
         {
         Window().SetNonFading( EFalse );
         SizeChangedInPopup();
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
         
@@ -4862,6 +5102,7 @@
         // Broadcast current state to CEikCbaButtons
         BroadcastPostingTransparency( enabled );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // -----------------------------------------------------------------------------
@@ -4871,6 +5112,7 @@
 //
 void CEikCba::CheckSkinAndUpdateContext()
     {
+    _AKNTRACE_FUNC_ENTER;
     if (AknsUtils::SkinInstance())
         {
         // Use ENullBrush if there is skin background available.
@@ -4880,18 +5122,24 @@
         {
         iBrushAndPenContext->SetBrushStyle(CGraphicsContext::ESolidBrush);
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::Reserved_MtsmPosition()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::Reserved_MtsmObject()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TInt CEikCba::AknLayoutFlags() const
     {
+    _AKNTRACE_FUNC_ENTER;
     TInt flags = 0;
 
     TBool controlPane = ETrue;
@@ -4960,6 +5208,7 @@
         flags |= EAknLayoutCbaInRightPane;
         }
 
+    _AKNTRACE_FUNC_EXIT;
     return flags;
     }
 
@@ -4970,6 +5219,7 @@
 //
 void CEikCba::SizeChangedInControlPane()
     {
+    _AKNTRACE_FUNC_ENTER;
     TRect screen;
     AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screen );
     
@@ -5051,7 +5301,7 @@
                     rect,
                     AknLayoutScalable_Avkon::bg_sctrl_sk_pane_cp1().LayoutLine() );
                 frameSizeChanged = layoutRect.Rect() != iExtension->iRightFrameOuterRect;
-				iExtension->iRightFrameOuterRect = layoutRect.Rect();
+                iExtension->iRightFrameOuterRect = layoutRect.Rect();
                 layoutRect.LayoutRect( iExtension->iRightFrameOuterRect,
                          AknLayoutScalable_Avkon::bg_sctrl_sk_pane_g1()
                             .LayoutLine() );
@@ -5446,11 +5696,13 @@
         }
 
     AknsUtils::RegisterControlPosition( this, posInScreen.iTl );
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::SizeChangedInStaconPane()
     {  
+    _AKNTRACE_FUNC_ENTER;  
     TRect screen( iAvkonAppUi->ApplicationRect() );
     TBool softKeysUpAndDownMirrored = EFalse;
 
@@ -5799,6 +6051,7 @@
         }
 
     AknsUtils::RegisterControlPosition( this, TPoint(0,0) );
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -5808,6 +6061,7 @@
 //
 void CEikCba::SizeChangedInRightPane()
     {
+    _AKNTRACE_FUNC_ENTER;
     TRect screen;
     AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screen );
            
@@ -6072,12 +6326,14 @@
         }
 
     AknsUtils::RegisterControlPosition( this, TPoint( 0, 0 ) );   
+    _AKNTRACE_FUNC_EXIT;
     }
     
     
     
 void CEikCba::SizeChangedInsideDialog()
     {
+    _AKNTRACE_FUNC_ENTER;
     // Give both LSK and RSK buttons half of the available space.
     //
     if ( iControlArray )
@@ -6100,11 +6356,13 @@
             (*iControlArray)[KControlArrayCBAButton2Posn].iControl->SetRect( buttonRect2 );
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
     
     
 void CEikCba::SizeChangedInPopup()
     {
+    _AKNTRACE_FUNC_ENTER;
     TRAP_IGNORE( iExtension->UpdateSoftkeyFrameL( EFalse ) );
     
     TAknLayoutRect layoutRect;
@@ -6132,7 +6390,6 @@
                  AknLayoutScalable_Avkon::bg_sctrl_sk_pane_g1()
                      .LayoutLine() );
     iExtension->iLeftFrameInnerRect = layoutRect.Rect();
-    UpdateLabels( ETrue );
     
     layoutRect.LayoutRect( iExtension->iRightFrameOuterRect,
                  AknLayoutScalable_Avkon::bg_sctrl_sk_pane_g1()
@@ -6150,11 +6407,13 @@
             msk->SetRect( TRect() );
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
     
 
 void CEikCba::UpdateFonts()
     {
+    _AKNTRACE_FUNC_ENTER;
     // Control pane:
     // Use the layout dll to get the right font for the CBA.
     TAknTextLineLayout layout(
@@ -6203,6 +6462,7 @@
     iRightPaneLabelFont = 
         AknLayoutUtils::FontFromId( 
             rightPaneTextLayout.FontId(), rightPaneCustomFont );
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // Enhanced CBA
@@ -6215,6 +6475,7 @@
 #ifdef RD_ENHANCED_CBA
 EXPORT_C void CEikCba::OfferCommandListL(const RArray<TInt>& aCommandList)
     {   
+    _AKNTRACE_FUNC_ENTER;   
     if( !iCommandTable )
         {        
         iCommandTable = CEikCommandTable::NewL();  
@@ -6351,11 +6612,14 @@
         }
         
     CleanupStack::PopAndDestroy(); // previousIds    
+    _AKNTRACE_FUNC_EXIT;
     }
 #else // !RD_ENHANCED_CBA
 EXPORT_C void CEikCba::OfferCommandListL(const RArray<TInt>& /*aCommandList*/)
     {
+    _AKNTRACE_FUNC_ENTER;
     User::Leave( KErrNotSupported );
+    _AKNTRACE_FUNC_EXIT;
     }
 #endif // RD_ENHANCED_CBA
 
@@ -6367,6 +6631,7 @@
 #ifdef RD_ENHANCED_CBA
 EXPORT_C void CEikCba::OfferCommandListL(const TInt aResourceId)
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( !iCommandTable ) // This is needed if cba was not constructed with enhanced cba.
         {
         iCommandTable = CEikCommandTable::NewL();
@@ -6512,11 +6777,14 @@
         }
     
     CleanupStack::PopAndDestroy(); // previousIds 
+    _AKNTRACE_FUNC_EXIT;
     }
 #else // !RD_ENHANCED_CBA   
 EXPORT_C void CEikCba::OfferCommandListL(const TInt /*aResourceId*/)
     {
+    _AKNTRACE_FUNC_ENTER;
     User::Leave( KErrNotSupported );
+    _AKNTRACE_FUNC_EXIT;
     }
 #endif // RD_ENHANCED_CBA
     
@@ -6528,11 +6796,15 @@
 #ifdef RD_ENHANCED_CBA  
 EXPORT_C TBool CEikCba::IsCommandInGroup(const TInt aCommandId) const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return ButtonById(aCommandId) ? ETrue : EFalse; // check the iControlArray
     }
 #else // !RD_ENHANCED_CBA
 EXPORT_C TBool CEikCba::IsCommandInGroup(const TInt /*aCommandId*/) const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return EFalse;
     }
 #endif // RD_ENHANCED_CBA
@@ -6546,20 +6818,26 @@
 #ifdef RD_ENHANCED_CBA  
 EXPORT_C void CEikCba::ReplaceCommand(const TInt aReplaceCommandId, const TInt aResourceId)
     {
+    _AKNTRACE_FUNC_ENTER;
     TInt index = IndexById( aReplaceCommandId );
     TRAPD(err, SetCommandL( index, aResourceId ) );     
+    _AKNTRACE_FUNC_EXIT;
     }
 #else
 EXPORT_C void CEikCba::ReplaceCommand(const TInt /*aReplaceCommandId*/, const TInt /*aResourceId*/)
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     }
 #endif // RD_ENHANCED_CBA
 
 void CEikCba::HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( !iFlags.IsSet( ECbaInsideDialog ) )
         {
         //User::Panic( _L( "CBA inside dialog" ), KErrNotSupported );
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
         
@@ -6594,11 +6872,13 @@
             iCommandObserver->ProcessCommandL( command );
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::MakeVisible( TBool aVisible )
     {    
+    _AKNTRACE_FUNC_ENTER;    
     if ( aVisible )
         {
         TBool redrawNeeded( EFalse );
@@ -6680,6 +6960,7 @@
         }
 
     ReportContentChangedEvent();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -6689,9 +6970,11 @@
 // -----------------------------------------------------------------------------
 void CEikCba::DoSetLayers( const TAknsItemID& aIID )
     {
+    _AKNTRACE_FUNC_ENTER;
     // Skin background is not drawn by embedded CBA.
     if ( iFlags.IsSet( ECbaEmbedded ) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
 
@@ -6910,11 +7193,13 @@
         }
         
     DrawDeferred();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCba::LayoutControl( CCoeControl* aControl, const TRect& aRect )
     {   
+    _AKNTRACE_FUNC_ENTER;   
     if ( !iFlags.IsSet( ECbaInsideDialog ) )
         {
         TRect rect( aRect );        
@@ -6929,10 +7214,12 @@
         aControl->SetRect( rect );
         aControl->ComponentControl( 0 )->SetRect( rect );            
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCba::BroadcastPostingTransparency( TBool aEnable )
     {
+    _AKNTRACE_FUNC_ENTER;
     // Communicate change to CBA buttons.
     for ( TInt i = 0; i < iControlArray->Count(); i++ ) 
         {
@@ -6946,6 +7233,7 @@
                 }
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -6956,6 +7244,7 @@
 //
 void CEikCba::SetFadeState()
     {
+    _AKNTRACE_FUNC_ENTER;
     TBool canBeFaded =
         IsEmpty() && !( ( iCbaFlags & EEikCbaFlagTransparent )
         || ( iExtension && iExtension->iEnablePostingTransparency ) );
@@ -6966,6 +7255,7 @@
         {
         Window().SetFaded( canBeFaded, RWindowTreeNode::EFadeIncludeChildren );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -6976,6 +7266,7 @@
 //
 void CEikCba::UpdateLabels( TBool aDrawDeferred )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iControlArray->Count() != 0)
         {
         CCoeControl *leftSoftkey = ( *iControlArray )
@@ -7098,6 +7389,7 @@
             DrawDeferred();
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
     
 
@@ -7109,6 +7401,7 @@
     CEikButtonGroupContainer& aButtonGroupContainer,
     TBool aEnable )
     {
+    _AKNTRACE_FUNC_ENTER;
     CEikCba* cba = dynamic_cast<CEikCba*>( aButtonGroupContainer.ButtonGroup() );
     TInt ret = KErrNone;
     if ( cba )
@@ -7124,6 +7417,7 @@
             cba->EnablePostingTransparency( aEnable );
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     return ret;
     }
 
@@ -7134,6 +7428,7 @@
 //
 void CEikCba::EnablePostingTransparency( TBool aEnable )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iExtension )
         {
         if ( iExtension->iEnablePostingTransparency != aEnable )
@@ -7166,6 +7461,7 @@
             DrawDeferred();
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -7176,6 +7472,7 @@
 //
 EXPORT_C TBool CEikCba::IsEmpty() const
     {
+    _AKNTRACE_FUNC_ENTER;
     TBool isEmpty( ETrue );
 
     if ( iFlags.IsSet( ECbaInsideDialog ) )
@@ -7210,6 +7507,7 @@
             }
         }
 
+    _AKNTRACE_FUNC_EXIT;
     return isEmpty;
     }
     
@@ -7221,6 +7519,8 @@
 //
 TBitFlags CEikCba::Flags() 
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return iFlags;
     }
 
@@ -7232,10 +7532,12 @@
 //
 void CEikCba::SetContentObserver( TCallBack aCallBack )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iExtension )
         {
         iExtension->iContentObserver = aCallBack;
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -7247,6 +7549,7 @@
 //     
 void CEikCba::ReportContentChangedEvent()
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( ItemSpecificSoftkey() )
         {
         UpdateItemSpecificSoftkey(
@@ -7255,6 +7558,7 @@
 
     if ( !iFlags.IsSet( ECbaEmbedded ) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
 
@@ -7282,6 +7586,7 @@
             iExtension->iContentObserver.CallBack(); // return value ignored
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // ---------------------------------------------------------------------------
@@ -7294,6 +7599,7 @@
                                    CWindowGc& aGc,
                                    CFbsBitmap* /*aMask*/ ) const
     {
+    _AKNTRACE_FUNC_ENTER;
     CEikCbaButton* button = 
         static_cast<CEikCbaButton*>( aGroupControl.iControl );
     
@@ -7323,24 +7629,29 @@
                                   KAknsIIDQgnFrSctrlSkButton,
                                   KAknsIIDQgnFrSctrlSkButtonCenter);
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TBool CEikCba::UpdateIconL()
         {
+        _AKNTRACE_FUNC_ENTER;
         if ( iFlags.IsSet( ECbaInsideDialog ) )
             {
+            _AKNTRACE_FUNC_EXIT;
             return EFalse;
             }
         
         if ( !iExtension->iIfMskIconSet ||
              !MskAllowed() )
             {
+            _AKNTRACE_FUNC_EXIT;
             return EFalse;         
             }
         
         MAknsSkinInstance* skin = AknsUtils::SkinInstance();
         if ( !skin )
             { 
+            _AKNTRACE_FUNC_EXIT;
             return EFalse;
             }
     
@@ -7349,6 +7660,7 @@
         CEikCbaButton *button = static_cast<CEikCbaButton*>( gCtrl.iControl );
         if ( !button )
             {
+            _AKNTRACE_FUNC_EXIT;
             return EFalse;
             }
    
@@ -7395,8 +7707,9 @@
     
         button->SetContainerWindowL( *this );
     
+        _AKNTRACE_FUNC_EXIT;
         return ETrue;
-    	
+        
         }
 
 
@@ -7408,6 +7721,8 @@
 //     
 TBool CEikCba::MskAllowed() const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return ( iMSKEnabledInPlatform &&
              AknLayoutUtils::MSKEnabled() &&
              IsMskEnabledLayoutActive() );
@@ -7422,6 +7737,7 @@
 TBool CEikCba::SoftkeyStatusChangeAllowed(
         TInt aSoftkeyPosition, TBool aDisabled )
     {
+    _AKNTRACE_FUNC_ENTER;
     TBool allowChange( ETrue );
     if ( aSoftkeyPosition == KControlArrayCBAButton1Posn )
         {
@@ -7439,6 +7755,7 @@
                 }
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     return allowChange;
     }
 
@@ -7450,6 +7767,7 @@
 //
 TEikGroupControl* CEikCba::ItemSpecificSoftkey() const
     {
+    _AKNTRACE_FUNC_ENTER;
     TEikGroupControl* lsk( NULL );
     if ( iFlags.IsSet( ECbaItemSpecificSoftkeyInUse ) )
         {
@@ -7461,6 +7779,7 @@
             lsk = &leftSoftkey;
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     return lsk;
     }
 
@@ -7472,6 +7791,7 @@
 //     
 void CEikCba::UpdateItemSpecificSoftkey( TBool aVisibleCollection )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iFlags.IsSet( ECbaSingleClickEnabled )
             && iExtension && iExtension->iItemActionMenu )
         {
@@ -7484,6 +7804,7 @@
             UpdateItemSpecificSoftkey( *leftSk->iControl, enableSk );
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -7494,6 +7815,7 @@
 //
 void CEikCba::UpdateItemSpecificSoftkey( CCoeControl& aControl, TBool aEnable )
     {
+    _AKNTRACE_FUNC_ENTER;
     TBool skEnabled( aControl.IsVisible() && !aControl.IsDimmed() );
     TBool changeState( EFalse );
     if ( !aEnable )
@@ -7525,6 +7847,7 @@
             aControl.DrawDeferred();
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -7534,6 +7857,7 @@
 
 CEikCbaButton::~CEikCbaButton()
     {
+    _AKNTRACE_FUNC_ENTER;
     AKNTASHOOK_REMOVE();
     delete iLabel;
     if ( iImage )
@@ -7545,10 +7869,12 @@
     delete iButtonOptions;
     delete iText;
 
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCbaButton::ConstructL(TGulAlignmentValue aAlignment)
     {
+    _AKNTRACE_FUNC_ENTER;
     iLabel = new(ELeave) CEikLabel;    
     iPressedDown = EFalse;    
     iLabel->SetBufferReserveLengthL(KMaxCbaLabelLength);
@@ -7563,11 +7889,14 @@
         iLabel->MakeVisible( EFalse );
         }
     AKNTASHOOK_ADDL( this, "CEikCbaButton" );
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCbaButton::AddCommandL(const TDesC& aText)
     {
+    _AKNTRACE_FUNC_ENTER;
     UpdateLabelText(aText);
+    _AKNTRACE_FUNC_EXIT;
     }
 
 struct STempCleanup
@@ -7578,6 +7907,7 @@
 
 LOCAL_C void CleanupTemp(TAny* aPtr)
     {
+    _AKNTRACE_FUNC_ENTER;
     STempCleanup& temp = *(STempCleanup*)aPtr;
     const TInt count = temp.iText->Count();
     if (temp.iButtonOptions->Count() == count)
@@ -7585,10 +7915,12 @@
         temp.iButtonOptions->Delete(count - 1);
         }
     temp.iText->Delete(count - 1);
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCbaButton::PushCommandL(TInt aCommandId,const TDesC& aText)
     {
+    _AKNTRACE_FUNC_ENTER;
     if (!iButtonOptions)
         {
         iButtonOptions = new(ELeave) CArrayFixFlat<SButtonOptions>(1);
@@ -7611,12 +7943,15 @@
     iButtonOptions->AppendL(options);
     UpdateLabelText(aText);
     CleanupStack::Pop(); // temp
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TInt CEikCbaButton::PopCommand()
     {
+    _AKNTRACE_FUNC_ENTER;
     if (!iButtonOptions)
         {
+        _AKNTRACE_FUNC_EXIT;
         return -1; 
         }
 
@@ -7625,6 +7960,7 @@
         
     if (count < 0)
         {
+        _AKNTRACE_FUNC_EXIT;
         return -1;
         }
 
@@ -7649,13 +7985,16 @@
         {
         iImage->DrawNow();
         }
+    _AKNTRACE_FUNC_EXIT;
     return buttonOptions.iCommandId;
     }
 
 void CEikCbaButton::RemoveCommand(TInt aCommandId)
     {
+    _AKNTRACE_FUNC_ENTER;
     if (!iButtonOptions)
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
     TInt index = IndexFromCommandId(aCommandId);
@@ -7671,12 +8010,15 @@
             iText = NULL;
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCbaButton::RemovePreviousCommand()
     {
+    _AKNTRACE_FUNC_ENTER;
     if (!iButtonOptions)
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
     TInt index = iButtonOptions->Count() - 2;
@@ -7685,26 +8027,31 @@
         iButtonOptions->Delete(index);
         iText->Delete(index);
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TInt CEikCbaButton::IndexFromCommandId(TInt aCommandId)
     {
+    _AKNTRACE_FUNC_ENTER;
     TInt index;
     TKeyArrayFix key(0, ECmpTInt);
     SButtonOptions options;
     options.iCommandId = aCommandId;
     if (iButtonOptions->Find(options, key, index) == KErrNone)
         {
+        _AKNTRACE_FUNC_EXIT;
         return index;
         }
     else
         {
+        _AKNTRACE_FUNC_EXIT;
         return KErrNotFound;
-        }
+        }    
     }
 
 void CEikCbaButton::SetContainerWindowL(const CCoeControl& aContainer)
     {
+    _AKNTRACE_FUNC_ENTER;
     CCoeControl::SetContainerWindowL(aContainer);
     if (!iDoImage)
         {
@@ -7714,40 +8061,50 @@
         {
         iImage->SetContainerWindowL(aContainer);
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCbaButton::ConstructFromResourceL(TResourceReader& aReader, TGulAlignmentValue anAlignment)
     {
+    _AKNTRACE_FUNC_ENTER;
     ConstructL(anAlignment);
     UpdateLabelText(aReader.ReadTPtrC());
     aReader.ReadTPtrC(); // bmp filename
     aReader.ReadInt16(); // bmp id
     aReader.ReadInt16(); // bmp mask id
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TSize CEikCbaButton::MinimumSize()
     {
+    _AKNTRACE_FUNC_ENTER;
     if (!iDoImage)
         {
+        _AKNTRACE_FUNC_EXIT;
         return iLabel->MinimumSize();
         }
     else
         {
+        _AKNTRACE_FUNC_EXIT;
         return iImage->MinimumSize();
         }
     }
 
 TInt CEikCbaButton::CountComponentControls() const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return 1;
     }
 
 CCoeControl* CEikCbaButton::ComponentControl(TInt aIndex) const
     {
+    _AKNTRACE_FUNC_ENTER;
     if (aIndex==0)
         {
         if (!iDoImage)
             {
+            _AKNTRACE_FUNC_EXIT;
             return iLabel;
             }
         else
@@ -7767,6 +8124,7 @@
             return iImage;
             }
         }
+    _AKNTRACE_FUNC_EXIT;
     return 0;
     }
 
@@ -7777,25 +8135,31 @@
 //
 void CEikCbaButton::SizeChanged()
     {
+    _AKNTRACE_FUNC_ENTER;
     // Resizing is done at CEikCba::SizeChanged().
     // We cannot resize here because this control has wrong
     // coordinate system available.
-
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 EXPORT_C void CEikCbaButton::HandlePointerEventL(const TPointerEvent& aPointerEvent) 
     { 
+    _AKNTRACE_FUNC_ENTER; 
     CCoeControl::HandlePointerEventL(aPointerEvent); 
+    _AKNTRACE_FUNC_EXIT;
     }    
 
 EXPORT_C void* CEikCbaButton::ExtensionInterface( TUid /*aInterface*/ )
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return NULL;
     }
 
 void CEikCbaButton::SetDimmed(TBool aDimmed)
     {
+    _AKNTRACE_FUNC_ENTER;
     CCoeControl::SetDimmed(aDimmed);
     if (!iDoImage)
         {
@@ -7806,6 +8170,7 @@
         // Drawing dimmed CEikImages don't work (problem in uiklaf).
         //iImage->SetDimmed(aDimmed);
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -7815,6 +8180,7 @@
 //
 void CEikCbaButton::UpdateLabelText( TPtrC aLabelText )
     {
+    _AKNTRACE_FUNC_ENTER;
     // Updates the label text with the given label, using tab delimited
     // label text to identify normal / alternative labels.
     if ( aLabelText.Length() > KMaxCbaLabelLength )
@@ -7847,20 +8213,24 @@
         {
         TruncateLabelText();
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 
 void CEikCbaButton::SetTextBitmapMode( TBool aEnableBitmap )
     {
+    _AKNTRACE_FUNC_ENTER;
     iUseTextBitmap = aEnableBitmap;
     if ( iLabel )
         {
         iLabel->MakeVisible( !aEnableBitmap );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCbaButton::DrawToContext( CBitmapContext& aContext, CBitmapContext& aMaskContext, const TPoint& aOffset ) const
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iLabel )
         {
         // Draw text into EColor16MA bitmap
@@ -7873,10 +8243,12 @@
         aMaskContext.SetOrigin( -aOffset );
         iLabel->DrawToContext( aMaskContext, &maskColor );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCbaButton::SwitchToShortTextL(TBool aShortText)
     {
+    _AKNTRACE_FUNC_ENTER;
     if (aShortText)
         {
         iLabel->SetTextL(iShortLabelText);
@@ -7899,24 +8271,31 @@
         {
         iImage->DrawDeferred();
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCbaButton::SetLabelFont(const CFont* aLabelFont)
     {    
+    _AKNTRACE_FUNC_ENTER;    
     iLabel->SetFont(aLabelFont);
+    _AKNTRACE_FUNC_EXIT;
     }
 
 void CEikCbaButton::TruncateLabelText()
     {
+    _AKNTRACE_FUNC_ENTER;
     // Truncation removed from here, as it was not bidi-text compatible.
     // Let CEikLabel handle truncation instead.
     iLabel->CropText();
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TBool CEikCbaButton::IsEmptyText() const
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iDoImage )
         {
+        _AKNTRACE_FUNC_EXIT;
         return EFalse;
         }
         
@@ -7932,25 +8311,32 @@
             }
         }
         
+    _AKNTRACE_FUNC_EXIT;
     return allSpaces;
     }
 
 void CEikCbaButton::ConstructEmptyButtonL()
     {
+    _AKNTRACE_FUNC_ENTER;
     ConstructL( EHRightVCenter ); // creates label
     _LIT(KEmptyText, "");
     TPtrC16 ptr(KEmptyText);
     UpdateLabelText( ptr );
+    _AKNTRACE_FUNC_EXIT;
     }
 
 TBool CEikCbaButton::PressedDown() const
     {    
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return iPressedDown;
     }
     
 void CEikCbaButton::SetPressedDown( const TBool aPressedDown )
     {
+    _AKNTRACE_FUNC_ENTER;
     iPressedDown = aPressedDown;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // -----------------------------------------------------------------------------
@@ -7963,6 +8349,7 @@
     CEikImage& aImage, 
     TBool aLeft)
     { // static
+    _AKNTRACE_FUNC_ENTER;
     TInt commandPos = aLeft ? 0 : 2;
     TInt commandId = aButtonGroupContainer->ButtonGroup()->CommandId(commandPos);
     CEikCbaButton* cbaButton = (CEikCbaButton*) aButtonGroupContainer->ControlOrNull(commandId);
@@ -7977,6 +8364,7 @@
         cbaButton->DrawNow();
         aButtonGroupContainer->DrawNow();       
         }    
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // -----------------------------------------------------------------------------
@@ -7988,6 +8376,7 @@
     CEikButtonGroupContainer* aButtonGroupContainer, 
     TBool aLeft)
     { // static
+    _AKNTRACE_FUNC_ENTER; 
     TInt commandPos = aLeft ? 0 : 2;
     TInt commandId = aButtonGroupContainer->ButtonGroup()->CommandId(commandPos);
     CEikCbaButton* cbaButton = (CEikCbaButton*) aButtonGroupContainer->ControlOrNull(commandId);
@@ -8003,6 +8392,7 @@
         cbaButton->DrawNow();
         aButtonGroupContainer->DrawNow();      
         }    
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // -----------------------------------------------------------------------------
@@ -8012,6 +8402,7 @@
 //
 void CEikCbaButton::SetImage(CEikImage &aImage)
     {
+    _AKNTRACE_FUNC_ENTER;
     iDoImage = ETrue;
    
     if ( iImage )
@@ -8030,6 +8421,7 @@
         {
         ReplaceImageByLabel();          
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // -----------------------------------------------------------------------------
@@ -8040,6 +8432,7 @@
 //
 void CEikCbaButton::PrepareImageL()
     {
+    _AKNTRACE_FUNC_ENTER;
     // 50% transparent pressed down image is made with a alternative mask
     // which is created when a image is set to CEikCbaButton. 
     // Original mask is copied and each of its pixels color components is 
@@ -8050,6 +8443,7 @@
     
     if ( !iMask )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
 
@@ -8085,6 +8479,7 @@
     CleanupStack::PopAndDestroy( device ); // device        
     
     delete gc;      
+    _AKNTRACE_FUNC_EXIT;
     }
 // -----------------------------------------------------------------------------
 // CEikCbaButton::ReplaceImageByLabel
@@ -8093,6 +8488,7 @@
 //
 void CEikCbaButton::ReplaceImageByLabel()
     {
+    _AKNTRACE_FUNC_ENTER;
     iDoImage = EFalse;
     if ( iImage )
         {
@@ -8103,6 +8499,7 @@
         delete iSfeMask;
         iSfeMask = NULL;
         }    
+    _AKNTRACE_FUNC_EXIT;
     }
 
 //
@@ -8114,6 +8511,8 @@
 // -----------------------------------------------------------------------------
 CEikEnhancedCbaButton::CEikEnhancedCbaButton()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // -----------------------------------------------------------------------------
@@ -8121,6 +8520,8 @@
 // -----------------------------------------------------------------------------
 CEikEnhancedCbaButton::~CEikEnhancedCbaButton()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // -----------------------------------------------------------------------------
@@ -8130,11 +8531,15 @@
 #ifdef RD_ENHANCED_CBA
 void CEikEnhancedCbaButton::SetCommandType( const TInt aCommandType )
     {
+    _AKNTRACE_FUNC_ENTER;
     iCommandType = aCommandType; 
+    _AKNTRACE_FUNC_EXIT;
     }
 #else    
 void CEikEnhancedCbaButton::SetCommandType( const TInt /*aCommandType*/ )
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     }
 #endif // RD_ENHANCED_CBA
 // -----------------------------------------------------------------------------
@@ -8144,6 +8549,8 @@
 
 TInt CEikEnhancedCbaButton::CommandType() const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
 #ifdef RD_ENHANCED_CBA    
     return iCommandType;
 #else
@@ -8157,6 +8564,8 @@
 // -----------------------------------------------------------------------------
 TInt CEikEnhancedCbaButton::CommandId() const
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
 #ifdef RD_ENHANCED_CBA    
     return iCommandId;
 #else
@@ -8171,6 +8580,7 @@
 #ifdef RD_ENHANCED_CBA
 void CEikEnhancedCbaButton::ConstructFromResourceL(TResourceReader& aReader)
     {   
+    _AKNTRACE_FUNC_ENTER   
     // Alignment set to right.
     ConstructL( EHRightVCenter ); // creates label
     iCommandType = aReader.ReadUint8();
@@ -8181,10 +8591,13 @@
     aReader.ReadTPtrC(); // bmp filename
     aReader.ReadInt16(); // bmp id
     aReader.ReadInt16(); // bmp mask id
+    _AKNTRACE_FUNC_EXIT;
     }
 #else    
 void CEikEnhancedCbaButton::ConstructFromResourceL(TResourceReader&)
     {   
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;    
     }
 #endif // RD_ENHANCED_CBA    
     
@@ -8193,6 +8606,8 @@
 // -----------------------------------------------------------------------------
 void CEikEnhancedCbaButton::ConstructEmptyButtonL()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
 #ifdef RD_ENHANCED_CBA    
     ConstructL( EHRightVCenter ); // creates label
     iCommandType = EEikCommandTypeAnyCommand;
@@ -8209,6 +8624,8 @@
 // -----------------------------------------------------------------------------    
 TPtrC* CEikEnhancedCbaButton::LabelText()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
 #ifdef RD_ENHANCED_CBA    
     return &iLongLabelText; 
 #else
@@ -8222,6 +8639,8 @@
 
 CEikCommandTable* CEikCommandTable::NewL()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
 #ifdef RD_ENHANCED_CBA    
     CEikCommandTable* self = CEikCommandTable::NewLC();
     CleanupStack::Pop( self );
@@ -8233,6 +8652,8 @@
     
 CEikCommandTable* CEikCommandTable::NewLC()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
 #ifdef RD_ENHANCED_CBA    
     CEikCommandTable* self = new (ELeave) CEikCommandTable;
     CleanupStack::PushL( self );
@@ -8249,6 +8670,7 @@
 // -----------------------------------------------------------------------------
 void CEikCommandTable::ConstructL()
     {
+    _AKNTRACE_FUNC_ENTER;
 #ifdef RD_ENHANCED_CBA    
     // Get the cba priority configuration
     TResourceReader reader;
@@ -8274,6 +8696,7 @@
     
     CleanupStack::PopAndDestroy(); // reader
 #endif    
+    _AKNTRACE_FUNC_EXIT;
     }
     
 #ifdef RD_ENHANCED_CBA
@@ -8287,6 +8710,7 @@
     
 CEikCommandTable::~CEikCommandTable()
     {
+    _AKNTRACE_FUNC_ENTER;
 #ifdef RD_ENHANCED_CBA    
     iCommandButtons.Reset(); // Reset array
     for(TInt i = 0; i < iPriorities.Count(); i++)
@@ -8295,6 +8719,7 @@
         }
     iPriorities.Reset();
 #endif    
+    _AKNTRACE_FUNC_EXIT;
     }
     
 // -----------------------------------------------------------------------------
@@ -8304,11 +8729,14 @@
 #ifndef RD_ENHANCED_CBA    
 TInt CEikCommandTable::AddCommandL(CEikEnhancedCbaButton* /*aButton*/) 
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return KErrNone;
     }
 #else     
 TInt CEikCommandTable::AddCommandL(CEikEnhancedCbaButton* aButton) 
     {
+    _AKNTRACE_FUNC_ENTER;
     // CommandType tells in which button this command should be placed
     TInt commandType( aButton->CommandType() );
     TInt index( KErrNotFound );
@@ -8349,6 +8777,7 @@
         delete aButton;
         aButton = NULL;
         }       
+    _AKNTRACE_FUNC_EXIT;
     return KErrNone;
     }
 #endif // RD_ENHANCED_CBA    
@@ -8360,9 +8789,11 @@
 #ifndef RD_ENHANCED_CBA
 TBool CEikCommandTable::IsCommandPlaced(const TInt /*aCommandId*/) const
     {
+    _AKNTRACE_FUNC_ENTER;
 #else // !RD_ENHANCED_CBA  
 TBool CEikCommandTable::IsCommandPlaced(const TInt aCommandId) const
     {
+    _AKNTRACE_FUNC_ENTER;
     TInt count( iCommandButtons.Count() );
     
     for ( TInt i = 0; i < count; i++ )
@@ -8371,11 +8802,13 @@
             {
             if ( iCommandButtons[i]->CommandId() == aCommandId )
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return ETrue;
                 }              
             }
         }
 #endif // RD_ENHANCED_CBA
+    _AKNTRACE_FUNC_EXIT;
     return EFalse; // if no match for command id
     }
     
@@ -8387,12 +8820,15 @@
 #ifndef RD_ENHANCED_CBA    
 void CEikCommandTable::ReplaceCommandL( const TInt /*aCommandId*/, const TInt /*aResourceId*/ )
     {
+    _AKNTRACE_FUNC_ENTER;
 #else // !RD_ENHANCED_CBA    
 void CEikCommandTable::ReplaceCommandL( const TInt aCommandId, const TInt aResourceId )
     {
+    _AKNTRACE_FUNC_ENTER;
     // If the command is not in the command table, return.
     if( !IsCommandPlaced( aCommandId ) )
         {
+        _AKNTRACE_FUNC_EXIT;
         return;
         }   
     
@@ -8431,6 +8867,7 @@
     // Delete old button.
     delete oldButton;
 #endif // !RD_ENHANCED_CBA    
+    _AKNTRACE_FUNC_EXIT;
     }
     
 // -----------------------------------------------------------------------------
@@ -8441,11 +8878,15 @@
 #ifdef RD_ENHANCED_CBA
 CEikEnhancedCbaButton* CEikCommandTable::Command( const TInt aCommandIndex )
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return iCommandButtons[aCommandIndex]; 
     }
 #else // RD_ENHANCED_CBA
 CEikEnhancedCbaButton* CEikCommandTable::Command( const TInt /*aCommandIndex*/ )
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
     return NULL;
     }
 #endif // RD_ENHANCED_CBA
@@ -8455,6 +8896,8 @@
 // -----------------------------------------------------------------------------    
 void CEikCommandTable::Reset()
     {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
 #ifdef RD_ENHANCED_CBA 
     iCommandButtons.Reset();
 #endif // RD_ENHANCED_CBA
@@ -8467,10 +8910,12 @@
         CEikCba* aCba, 
         TCallBack aCallBack )
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( aCba )
         {
         aCba->SetContentObserver( aCallBack );
         }
+    _AKNTRACE_FUNC_EXIT;
     }
 
 // End of file
--- a/uifw/EikStd/coctlsrc/eikspane.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/eikspane.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -69,8 +69,6 @@
 /** This flag is used to turn redraw storing on/off in status pane. */
 const TInt KEnableRedrawStoring = ETrue;
 
-const TUid KActiveIdle2Uid = {0x102750F0};
-
 inline void CEikStatusPaneBase::TPaneCapabilities::SetPresent()
     {
     iFlags |= KStatusPaneCapsPresentBit;
@@ -1178,26 +1176,21 @@
      * @param  aRedrawStoreHandler  Pointer to the redraw store handler should
      *                              be also passed if @c aParentWindowGroup
      *                              is specified.
+     * @param  aTransparent         Whether or not the control is transparent.
      */
     void SetParentWindowL( RWindowGroup* aParentWindowGroup,
                            CCoeControl* aParentControl,
-                           CRedrawStoreHandler* aRedrawStoreHandler );
+                           CRedrawStoreHandler* aRedrawStoreHandler,
+                           TBool aTransparent );
     
     /**
-     * Sets the background drawer for the container control.
+     * Sets the container control transparency.
+     * The background drawer is used if transparency is not enabled.
      * 
      * @param  aBackground  The background drawer.
      */
-    void SetBackgroundDrawer( MCoeControlBackground* aBackground );
-    
-    /**
-     * Checks if the status pane container is in the idle (Home Screen)
-     * application. This check in required in some places since Home
-     * Screen draws the status pane background itself.
-     * 
-     * @return @c ETrue if in idle application, @c EFalse otherwise.
-     */
-    TBool InIdleApplication();
+    void SetTransparency( TBool aTransparent,
+                          MCoeControlBackground* aBackground );
 
 public: // From base class @c CCoeControl.
 
@@ -1394,18 +1387,6 @@
     SetMopParent( iEikonEnv->EikAppUi() );
 
     CreateWindowL( aParent );
-    
-    // This is added for homescreen transparency support.
-    if ( InIdleApplication()  )
-        {
-        if( KErrNone == Window().SetTransparencyAlphaChannel())
-            Window().SetBackgroundColor(~0);
-        }
-    else
-        {
-        Window().SetBackgroundColor(
-        iEikonEnv->ControlColor( EColorStatusPaneBackground, *this ) );
-        }
 
     // This helps for unsyncronized undimming problems.
     aRedrawStoreHandler.SetStore( &Window(), KEnableRedrawStoring );
@@ -2622,7 +2603,8 @@
 void CEikStatusPaneContainer::SetParentWindowL(
     RWindowGroup* aParentWindowGroup,
     CCoeControl* aParentControl,
-    CRedrawStoreHandler* aRedrawStoreHandler )
+    CRedrawStoreHandler* aRedrawStoreHandler,
+    TBool aTransparent )
     {
     if ( aParentWindowGroup )
         {
@@ -2638,24 +2620,24 @@
 
         CreateWindowL( aParentWindowGroup );
 
-        // Enable the transparency only in HomeScreen where it's needed
-        // for performance reasons.
-        if ( InIdleApplication() )
-            {
-            EnableWindowTransparency();
-            }
-        else
-            {
-            Window().SetBackgroundColor(
-                iEikonEnv->ControlColor( EColorStatusPaneBackground, *this ) );
-            }
-
         RWindow& window = Window();
         if ( aRedrawStoreHandler )
             {
             aRedrawStoreHandler->SetStore( &window, KEnableRedrawStoring );
             }
         
+        // Enable the transparency only in HomeScreen where it's needed
+        // for performance reasons.
+        if ( aTransparent && window.SetTransparencyAlphaChannel() == KErrNone )
+            {
+            window.SetBackgroundColor( ~0 );
+            }
+        else
+            {
+            window.SetBackgroundColor(
+                iEikonEnv->ControlColor( EColorStatusPaneBackground, *this ) );
+            }
+        
         window.SetPointerGrab( ETrue );
         window.SetShadowDisabled( ETrue );
         window.SetNonFading( !LafStatusPaneContainer::AllowFading() );
@@ -2673,38 +2655,32 @@
 
 
 // ---------------------------------------------------------------------------
-// Sets the background drawer for the container control.
+// Sets the container control transparency.
 // ---------------------------------------------------------------------------
 //
-void CEikStatusPaneContainer::SetBackgroundDrawer(
+void CEikStatusPaneContainer::SetTransparency(
+    TBool aTransparent,
     MCoeControlBackground* aBackground )
     {
-    if ( aBackground && InIdleApplication() )
+    RWindow& window = Window();
+
+    if ( aTransparent )
         {
-        // In Home Screen the application draws also the status
-        // pane background.
-        aBackground = NULL;
+        if ( window.SetTransparencyAlphaChannel() == KErrNone )
+            {
+            window.SetBackgroundColor( ~0 );
+            }
+        }
+    else
+        {
+        window.SetBackgroundColor(
+            iEikonEnv->ControlColor( EColorStatusPaneBackground, *this ) );
         }
     
-    SetBackground( aBackground );
-    }
-
-
-// ---------------------------------------------------------------------------
-// Checks if the status pane container is in the Home Screen application.
-// ---------------------------------------------------------------------------
-//
-TBool CEikStatusPaneContainer::InIdleApplication()
-    {
-    TBool retVal( EFalse );
-
-    CEikApplication* app = iEikonEnv->EikAppUi()->Application();
-    if ( app && app->AppDllUid() == KActiveIdle2Uid  )
-        {
-        retVal = ETrue;
-        }
-
-    return retVal;
+    // Skin background is not drawn for the subpane if it's transparent
+    // OR if it's a child of another subpane.
+    TBool drawBackground( Parent() ? NULL : !aTransparent );
+    SetBackground( drawBackground ? aBackground : NULL );
     }
 
 
@@ -2923,9 +2899,9 @@
                                            AknsDrawUtils::ControlContext( &aControl ),
                                            &aControl,
                                            aGc,
-                                           TPoint( 0, 0 ),
+                                           aRect.iTl,
                                            aRect,
-                                           KAknsDrawParamDefault );
+                                           KAknsDrawParamNoClearUnderImage );
             }
         }
 		
@@ -3404,7 +3380,7 @@
         iExtension->iDataSubscriber,
         *iExtension->iRedrawStoreHandler );
 
-    cont->SetBackgroundDrawer( iExtension );
+    cont->SetBackground( iExtension );
 
     CleanupStack::PushL( cont );
     iControls->AppendL( cont );
@@ -3803,7 +3779,9 @@
     if ( combinedPane )
         {
         CCoeControl* combinedPaneControl = combinedPane->Control();
-
+        
+        TBool transparencyEnabled( IsTransparent() );
+        
         // The subpane container controls inside combined pane are it's
         // component controls.
         TInt count( combinedPaneControl->CountComponentControls() );
@@ -3819,18 +3797,22 @@
                     {
                     subPane->SetParentWindowL( NULL,
                                                combinedPaneControl,
-                                               NULL );
+                                               NULL,
+                                               transparencyEnabled );
                     // Background is drawn by the combined pane so remove
                     // the subpane's own background drawer. 
-                    subPane->SetBackgroundDrawer( NULL );
+                    subPane->SetBackground( NULL );
                     }
                 else
                     {
                     subPane->SetParentWindowL(
                         iParentWindowGroup,
                         NULL,
-                        iExtension ? iExtension->iRedrawStoreHandler : NULL );
-                    subPane->SetBackgroundDrawer( iExtension );
+                        iExtension ? iExtension->iRedrawStoreHandler : NULL,
+                        transparencyEnabled );
+
+                    subPane->SetBackground( transparencyEnabled ? NULL :
+                                                                  iExtension );
                     }
                 }
             }
@@ -3932,13 +3914,19 @@
 	EnableTransparent( aFlags & KStatusPaneTransparentBit );
 	}
 
+// ---------------------------------------------------------------------------
+// CEikStatusPaneBase::EnableTransparent
+// Enables transparency in the status pane.
+// ---------------------------------------------------------------------------
+//
 EXPORT_C void CEikStatusPaneBase::EnableTransparent( TBool aTransparent )
     {
     if ( COMPARE_BOOLS( aTransparent, IsTransparent() ) )
-            {
-            return;
-            }
-    if( aTransparent )
+        {
+        return;
+        }
+
+    if ( aTransparent )
         {
         iFlags |= KStatusPaneTransparentBit;
         }
@@ -3946,14 +3934,30 @@
         {
         iFlags &= ~KStatusPaneTransparentBit;
         }
-    DoDrawNow( EDrawDeferred );
+
+    // Change the subpane window background colour and background drawer
+    // based on the transparency.
+    const TInt count = iControls->Count();
+    for ( TInt ii = 0; ii < count; ++ii )
+        {
+        iControls->At( ii )->SetTransparency( aTransparent, iExtension );
+        }
     
+    DoDrawNow( EDrawDeferred );
     }
 
+
+// ---------------------------------------------------------------------------
+// CEikStatusPaneBase::IsTransparent
+// Checks if the status pane has transparency enabled.
+// ---------------------------------------------------------------------------
+//
 EXPORT_C TBool CEikStatusPaneBase::IsTransparent() const
     {
     return iFlags & KStatusPaneTransparentBit;
     }
+
+
 // ---------------------------------------------------------------------------
 // CEikStatusPaneBase::Flags
 // Returns the status pane flags.
--- a/uifw/EikStd/coctlsrc/smileydrawer.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/smileydrawer.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -206,11 +206,6 @@
 void CSmileyDrawer::DrawImageByIconL( CBitmapContext& aGc, 
     CSmileyIcon* aIcon )
     {
-    if ( aIcon->DocPos() < iVisibleStart && aIcon->DocPos() >= 
-        iVisibleStart + iVisibleLength )
-        {
-        return;
-        }
     CSmileyImageData* image( aIcon->ImageData() );
     CFbsBitmap* bmp( image->Bitmap() );
     CFbsBitmap* mask( image->Mask() );
--- a/uifw/EikStd/coctlsrc/smileymanager.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/smileymanager.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -270,15 +270,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSmileyManager::SetVisibleRange
-// ---------------------------------------------------------------------------
-//
-void CSmileyManager::SetVisibleRange( TInt aDocPos, TInt aLength )
-    {
-    iDrawer->SetVisibleRange( aDocPos, aLength );
-    }
-
-// ---------------------------------------------------------------------------
 // CSmileyManager::TextBlockLength
 // ---------------------------------------------------------------------------
 //
--- a/uifw/EikStd/dlgsrc/AknMediatorFacade.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/dlgsrc/AknMediatorFacade.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -20,7 +20,7 @@
 #include <eikapp.h>
 #include <coedef.h>
 #include <MediatorDomainUIDs.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 
 #include "AknMediatorFacade.h" 
 #include "AknMediatorObserver.h"
--- a/uifw/EikStd/dlgsrc/EIKCAPC.CPP	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/dlgsrc/EIKCAPC.CPP	Mon Mar 15 12:41:34 2010 +0200
@@ -3906,7 +3906,7 @@
 
     if ( !iIsCurrentLine )
         {
-        AknListUtils::DrawSeparator( aGc, Rect(), textColor );
+        AknListUtils::DrawSeparator( aGc, Rect(), textColor, skin );
         aGc.SetBrushStyle( CGraphicsContext::ENullBrush ) ; 
         }
     else // Highlight Skinning.  Requires Frame
@@ -3920,7 +3920,7 @@
             MAknsControlContext* parentCc = GetDialogControlContext( iDialogPage ) ; 
             AknsDrawUtils::Background( skin, parentCc, this, aGc, Rect() ) ;
 
-            AknListUtils::DrawSeparator( aGc, Rect(), textColor );
+            AknListUtils::DrawSeparator( aGc, Rect(), textColor, skin );
             
             // Set the rectangle(s) for the Frame context
             iExtension->iEditModeHighlightControlContext->SetFrameRects( EditRect(), innerRect ) ;
@@ -3944,7 +3944,7 @@
             AknsDrawUtils::BackgroundBetweenRects( skin, parentCc, this, aGc, 
                     Rect(), innerRect );
     
-            AknListUtils::DrawSeparator( aGc, Rect(), textColor );
+            AknListUtils::DrawSeparator( aGc, Rect(), textColor, skin );
 
             // Draw the animation itself
             if ( iExtension->IsHighlightAnimated() 
--- a/uifw/EikStd/dlgsrc/EIKDIALG.CPP	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/dlgsrc/EIKDIALG.CPP	Mon Mar 15 12:41:34 2010 +0200
@@ -1759,12 +1759,17 @@
 
 	if (button)
 		{
-		if (button->IsDimmed() || !button->IsVisible())
-			{
+        TBool animateCommand = ( !button->IsDimmed() && button->IsVisible() );
+     
+        if ( !animateCommand && buttonId != EEikBidCancel )
+            {
 			_AKNTRACE_FUNC_EXIT;
-			return EKeyWasNotConsumed;		
-			}
-		buttonGroupContainer.AnimateCommand(buttonId);
+            return EKeyWasNotConsumed;
+            }
+        else if ( animateCommand )
+            {
+            buttonGroupContainer.AnimateCommand( buttonId );
+            }
 		}
 
 	if (button || buttonId==EEikBidCancel || buttonId==EEikBidOk)
--- a/uifw/eikctl/src/EIKCLBD.CPP	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/eikctl/src/EIKCLBD.CPP	Mon Mar 15 12:41:34 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -2007,7 +2007,7 @@
     
     if ( iExtension->iCurrentRow < list->BottomItemIndex() )
         {
-        AknListUtils::DrawSeparator( aGc, aRect, aColors.iText );
+        AknListUtils::DrawSeparator( aGc, aRect, aColors.iText, skin );
         }
     DrawHighLight( aGc, aRect, aHighlight, skin );
     
@@ -2473,7 +2473,7 @@
 
     if ( iExtension->iCurrentRow < list->BottomItemIndex() )
         {
-        AknListUtils::DrawSeparator( aGc, aRect, aColors.iText );
+        AknListUtils::DrawSeparator( aGc, aRect, aColors.iText, skin );
         }
     
  // LISTBOX LINES NEED TO BE DRAWN HERE.
--- a/uifw/ganes/inc/HgVgButton.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/inc/HgVgButton.h	Mon Mar 15 12:41:34 2010 +0200
@@ -94,6 +94,11 @@
      */
     void Draw(const TRect& aWindowRect, TReal aAlpha=1);
     
+    /**
+     * 
+     */
+    void EnableLandscapeRendering(TBool aEnabled);
+    
 private: 
 
     TSize iSize;
@@ -101,6 +106,7 @@
     VGImage iImage;
     TBool iEnabled;
     TBool iPointerDown;
+    TBool iLandscape;
     
     };
 
--- a/uifw/ganes/inc/HgVgConstants.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/inc/HgVgConstants.h	Mon Mar 15 12:41:34 2010 +0200
@@ -28,7 +28,7 @@
     const TReal KMaxSpringVelocity(300.0f);
     
     //
-    const TReal KSpringVelocityToAnimationFactor(20.0f);
+    const TReal KSpringVelocityToAnimationFactor(10.0f);
 
 
     // maximum quads in coverflow
@@ -40,7 +40,7 @@
     // fi
     const TReal KMinFlickSpeed(0.5f);
 
-    const TInt KViewUpdateInterval( 16000 ); // > ~60 fps
+    const TInt KViewUpdateInterval( 15000 ); // > ~60 fps
     
     // The amound of pixels one item (virtually) takes on the screen (if you think coverflow as uniform list)
     const TReal KRowHeight(1.0f);
@@ -50,16 +50,16 @@
     const TReal PI(3.1415926535897932f);
 
     // Spring constant
-    const TReal KSpringK(35.0f);
+    const TReal KSpringK(20.0f);
     
     // Spring damping
     const TReal KSpringDamping(11.0f);
     
     // maximum distance from target to snap 
-    const TReal KPositionSnap(0.02);
+    const TReal KPositionSnap(0.01);
     
     // maximum speed where to snap to item
-    const TReal KMinSpringVelocity(0.05);
+    const TReal KMinSpringVelocity(0.01);
     
     // how far user must have dragged an item before 
     // we move to next item when user has stopped dragging gesture.
@@ -70,7 +70,7 @@
     const TReal KItemsToDragOnFullScreenDrag(5.0f);
     
     // Physics update timestep
-    const TReal KTimeStep(0.01f); // we update physics 100 fps
+    const TReal KTimeStep(0.008333333333f); // we update physics 120 fps
     
     // Width of one quad in 3d space
     const TReal KWorldQuadWidth(1);
@@ -95,11 +95,11 @@
     // how long it user must press to move one index further
     const TInt KKeyPressDuration(800000);
     // factor used for converting swipe speed to view movement
-    const TReal KSwipeSpeedFactor(0.4f);
+    const TReal KSwipeSpeedFactor(0.5f);
     
     // Camera rotation factor to use in animation
     // when swiping
-    const TReal KCameraRotationFactor(PI/8.0f);
+    const TReal KCameraRotationFactor(PI/12.0f);
     
     // zooming factor to use in animation
     const TReal KCameraZoomFactor(0);
@@ -122,6 +122,13 @@
     // blur deviation factor for blur in zoom animation
     const TReal KDefaultBlurDeviation(4);
 
+    //
+    const TReal KSpringVelocityToZAlpha(10.0f);
+    
+    const TInt KFramesToZeroVelocity(60);
+    
+    const TReal KHalfItemWidth(0.5);
+    
     // Specific constants for full screen coverflow mediawall
     const TInt KMediaWallFullScreenItemsOnScreen(5);
     const TReal KMediaWallFullScreenCameraZoomFactor(1.5);
@@ -129,7 +136,7 @@
     const TReal KMediaWallFullScreenSpringVelocityToAnimationFactor(10);
     const TReal KMediaWallFullScreenZOffset(1);
     const TInt KMediaWallFullScreenRowCount(1);
-    const TReal KMediaWallFullScreenSpringK(28);
+    const TReal KMediaWallFullScreenSpringK(KSpringK);
     const TReal KMediaWallFullScreenSpringDamping(KSpringDamping);
     const TReal KMediaWallFullScreenSpringMaxVelocity(KMaxSpringVelocity);
     const TReal KMediaWallFullScreenItemsToMoveOnFullScreenDrag(5);
--- a/uifw/ganes/inc/HgVgEGL.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/inc/HgVgEGL.h	Mon Mar 15 12:41:34 2010 +0200
@@ -62,7 +62,7 @@
     
     EGLConfig CurrentConfig() const;
     
-    CFbsBitmap* GetSurfaceToBitmap(const TRect& aRect) const;
+    CFbsBitmap* GetSurfaceToBitmap(const TRect& aRect, TBool aLandscape = EFalse) const;
     
 protected: // Constructors
 
--- a/uifw/ganes/inc/HgVgHelper.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/inc/HgVgHelper.h	Mon Mar 15 12:41:34 2010 +0200
@@ -213,7 +213,8 @@
      * @param aPos position where to draw (in symbian screen coordinates).
      * @param aWindowRect drawing windows rectangle.
      */
-    void DrawImage(VGImage aImage, const TPoint& aPos, const TRect& aWindowRect, TBool aCentered = EFalse);
+    void DrawImage(VGImage aImage, const TPoint& aPos, const TRect& aWindowRect, TBool aCentered = EFalse, 
+        TBool iLanscape = EFalse);
     
     /**
      * Draws vg image to current vg surface multiplying its colors by a color.
@@ -225,7 +226,8 @@
      * @param aWindowRect drawing windows renctangle.
      */
     void DrawImageColorized(VGImage aImage, const TRgb& aColor, 
-            const TPoint& aPos, const TRect& aWindowRect, TBool aCentered = EFalse);
+            const TPoint& aPos, const TRect& aWindowRect, TBool aCentered = EFalse, 
+            TBool iLanscape = EFalse);
     
     
     /**
--- a/uifw/ganes/inc/HgVgLabel.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/inc/HgVgLabel.h	Mon Mar 15 12:41:34 2010 +0200
@@ -57,6 +57,8 @@
     
     void DrawEmptyText(const TRect& aClientRect, const TDesC& aText);
 
+    void EnableLandscapeRendering(TBool enabled);
+
 protected: // Constructors
 
     CHgVgLabel(const TRect& aRect);
@@ -84,6 +86,8 @@
     TAknTextComponentLayout iLayout;
     
     TRect iParentRect;
+    
+    TBool iLandscape;
     };
 
 #endif /* HGVGLABEL */
--- a/uifw/ganes/inc/HgVgLetterPopup.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/inc/HgVgLetterPopup.h	Mon Mar 15 12:41:34 2010 +0200
@@ -80,6 +80,11 @@
     void SetLayouts(const TAknWindowComponentLayout& aPopupLayout, 
             const TAknTextComponentLayout& aTextLayout, const TRect& aParentRect);
     
+    /**
+     * 
+     */
+    void EnableLanscapeRendering(TBool enabled);
+
 protected: // Constructors
     CHgVgPopup();
 
@@ -98,6 +103,7 @@
     TAknWindowComponentLayout iPopupLayout;
     TAknTextComponentLayout iTextLayout;
     TRect iParentRect;
+    TBool iLandscape;
     };
 
 #endif /* HGVGLETTERPOPUP_H */
--- a/uifw/ganes/inc/HgVgMediaWallRenderer.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/inc/HgVgMediaWallRenderer.h	Mon Mar 15 12:41:34 2010 +0200
@@ -68,7 +68,8 @@
             CHgVgMediaWall::THgVgAnimationState aAnimationState, 
             CHgVgMediaWall::THgVgOpeningAnimationType aSelectionAnimationType, 
             CHgVgMediaWall::THgVgMediaWallStyle aStyle, 
-            TReal aStartIndex);
+            TReal aStartIndex, 
+            TReal aSpringVelocity);
 
     /**
      * 
@@ -168,6 +169,12 @@
      */
     void EnableFlipXY(TBool aEnabled);
     
+    /**
+     * 
+     */
+    void EnableLandscapeMode(TBool enabled);
+    
+    
 private:
     
     class TQuad
@@ -233,7 +240,8 @@
             VGfloat aAnimationAlpha,
             CHgVgMediaWall::THgVgAnimationState aState, 
             CHgVgMediaWall::THgVgOpeningAnimationType aAnimationType, 
-            TReal aStartIndex);
+            TReal aStartIndex, 
+            TReal aSpringVelocity);
 
 
     /**
@@ -355,6 +363,8 @@
     TPoint iOffset;
     
     TBool iFlipXY;
+
+    TBool iLandscape;
     };
 
 #endif /* HGVGMEDIAWALLRENDERER */
--- a/uifw/ganes/inc/HgVgScrollBar.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/inc/HgVgScrollBar.h	Mon Mar 15 12:41:34 2010 +0200
@@ -68,6 +68,8 @@
             TSize aViewSize,
             TBool aLandscapeScrolling,
             CHgScroller::THgScrollBarType aScrollBarType);
+    
+    void EnableLandscapeRendering(TBool aEnabled);
 
 protected: // Constructors
     CHgVgScrollBar(  );
@@ -95,6 +97,8 @@
     VGImage iScrollbarHandle;
     VGImage iScrollbarBgSelected;
     VGImage iScrollbarHandleSelected;
+    
+    TBool iLandscape;
                     
     };
 
--- a/uifw/ganes/inc/HgVgSkinRenderer.h	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/inc/HgVgSkinRenderer.h	Mon Mar 15 12:41:34 2010 +0200
@@ -64,7 +64,11 @@
      */
     void Draw() const;
     
-    
+
+    /**
+     * 
+     */
+    void EnableLanscapeRendering(TBool aLandscape);
 protected: // Constructors
     CHgVgSkinRenderer(const TRect& aRect);
 
@@ -77,6 +81,8 @@
     VGImage iSkinImage;
 
     TRect iRect;
+    
+    TBool iLandscape;
     };
 
 #endif /* HGVGSKINRENDERER */
--- a/uifw/ganes/src/HgDoubleGraphicList.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgDoubleGraphicList.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -23,6 +23,7 @@
 #include "HgIndicatorManager.h"
 #include "HgDrawUtils.h"
 #include "HgConstants.h"
+#include "HgScrollbar.h"
 
 
 #include <AknsUtils.h>
@@ -101,7 +102,8 @@
         iLayoutData->SetTitleLayout(i, list_double_large_graphic_pane_t1( i ));
     iLayoutData->SetTextLayout(list_double_large_graphic_pane_t2( 2 ));
     iLayoutData->SetFirstIndicatorLayout(list_double_large_graphic_pane_g3(0));
-    iLayoutData->SetSecondIndicatorLayout(list_double_large_graphic_pane_g2(1));
+    TInt variety = iScrollbar && !iScrollbar->IsStatic() ? 1 : 0;
+    iLayoutData->SetSecondIndicatorLayout(list_double_large_graphic_pane_g2(variety));
     
     // Get the Row rect.
     TAknLayoutRect layout;
@@ -230,3 +232,14 @@
         }
     }
 
+// -----------------------------------------------------------------------------
+// CHgDoubleGraphicList::HandleScrollbarVisibilityChange()
+// -----------------------------------------------------------------------------
+//
+void CHgDoubleGraphicList::HandleScrollbarVisibilityChange( TBool aVisible )
+    {
+    TInt variety = aVisible ? 1 : 0;
+    iLayoutData->SetSecondIndicatorLayout(list_double_large_graphic_pane_g2(variety));
+    }
+
+// End of file
--- a/uifw/ganes/src/HgDoubleTextList.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgDoubleTextList.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -24,6 +24,7 @@
 #include "HgIndicatorManager.h"
 #include "HgDrawUtils.h"
 #include "HgConstants.h"
+#include "HgScrollbar.h"
 
 #include <AknsUtils.h>
 #include <AknUtils.h>
@@ -87,7 +88,8 @@
         iLayoutData->SetTitleLayout(i, list_double_pane_t1( i ));
     iLayoutData->SetTextLayout(list_double_pane_t2( 2 ));
     iLayoutData->SetFirstIndicatorLayout(list_double_pane_g2(0));
-    iLayoutData->SetSecondIndicatorLayout(list_double_pane_g1(1));
+    TInt variety = iScrollbar && !iScrollbar->IsStatic() ? 1 : 0;
+    iLayoutData->SetSecondIndicatorLayout(list_double_pane_g1(variety));
     
     // Get the Row rect.
     TAknLayoutRect layout;
@@ -183,3 +185,14 @@
     
     }
 
+// -----------------------------------------------------------------------------
+// CHgDoubleTextList::HandleScrollbarVisibilityChange()
+// -----------------------------------------------------------------------------
+//
+void CHgDoubleTextList::HandleScrollbarVisibilityChange( TBool aVisible )
+    {
+    TInt variety = aVisible ? 1 : 0;
+    iLayoutData->SetSecondIndicatorLayout(list_double_pane_g1(variety));
+    }
+
+// End of file
--- a/uifw/ganes/src/HgGrid.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgGrid.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -673,8 +673,11 @@
 void CHgGrid::SelectDefaultItem()
     {
     iSelectedIndex = CurrentIndex();
-    FitSelectionToView();
-    DrawDeferred();
+    if( iSelectedIndex >= 0 && iSelectedIndex < iItems.Count() )
+        {
+        FitSelectionToView();
+        DrawDeferred();
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -760,6 +763,10 @@
     iLandScapeScrollingSupported = aSupportLandscapeScrolling;
     }
 
+// -----------------------------------------------------------------------------
+// CHgGrid::ChangeSelectedIndex()
+// -----------------------------------------------------------------------------
+//
 void CHgGrid::ChangeSelectedIndex( TInt aMove )
     {
     TInt nextIndex = 0;
@@ -792,4 +799,13 @@
     iSelectedIndex = nextIndex;
     }
 
+// -----------------------------------------------------------------------------
+// CHgGrid::HandleScrollbarVisibilityChange()
+// -----------------------------------------------------------------------------
+//
+void CHgGrid::HandleScrollbarVisibilityChange( TBool /*aVisible*/ )
+    {
+    
+    }
+
 // End of File
--- a/uifw/ganes/src/HgList.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgList.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -399,11 +399,14 @@
 //
 void CHgList::SelectDefaultItem()
     {
-    iSelectedIndex = iCurrentRow;
-    FitSelectionToView();
-    SelectionChanged();
-
-    DrawDeferred();
+    if( iCurrentRow >= 0 && iCurrentRow < iItems.Count() )
+        {
+        iSelectedIndex = iCurrentRow;
+        FitSelectionToView();
+        SelectionChanged();
+    
+        DrawDeferred();
+        }
     }
 
 TInt CHgList::CurrentIndex()
--- a/uifw/ganes/src/HgScroller.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgScroller.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -207,6 +207,9 @@
     {
     if( aIndex >= 0 && aIndex < iItems.Count() )
         {
+        iSelectedIndex = iItems.Count() - 1;
+        FitSelectionToView();
+        
         iSelectedIndex = aIndex;
         // Move view position so that it is fully visible.
         FitSelectionToView();
@@ -540,12 +543,16 @@
     {
     if( iScrollbar && iItemCount )
         {
+        TBool prevStatic = iScrollbar->IsStatic();
         iScrollbar->InitScrollBarL( Rect(), 
                                     TotalSize(), 
                                     TSize(iWidth, iHeight), 
                                     iLandscapeScrolling); 
 
         iScrollbar->SetViewPosition( iViewPosition - TPoint(iWidth/2, iHeight/2));
+        
+        if(prevStatic != iScrollbar->IsStatic())
+            HandleScrollbarVisibilityChange(iScrollbar->IsStatic());
         }
     }
 // -----------------------------------------------------------------------------
@@ -1755,5 +1762,4 @@
         }
     }
 
-
 // End of File
--- a/uifw/ganes/src/HgSingleGraphicList.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgSingleGraphicList.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -23,6 +23,7 @@
 #include "HgIndicatorManager.h"
 #include "HgDrawUtils.h"
 #include "HgConstants.h"
+#include "HgScrollbar.h"
 
 #include <AknsUtils.h>
 #include <AknUtils.h>
@@ -87,7 +88,8 @@
     for(TInt i = 0; i <= KMaxNumberOfTitleIndicators; ++i)
         iLayoutData->SetTitleLayout( i, list_single_graphic_pane_t1( i ));
     iLayoutData->SetFirstIndicatorLayout(list_single_graphic_pane_g3(0));
-    iLayoutData->SetSecondIndicatorLayout(list_single_graphic_pane_g2(1));
+    TInt variety = iScrollbar && !iScrollbar->IsStatic() ? 1 : 0;
+    iLayoutData->SetSecondIndicatorLayout(list_single_graphic_pane_g2(variety));
 
     // Get the Row rect.
     TAknLayoutRect layout;
@@ -174,4 +176,14 @@
     
     }
 
+// -----------------------------------------------------------------------------
+// CHgSingleGraphicList::HandleScrollbarVisibilityChange()
+// -----------------------------------------------------------------------------
+//
+void CHgSingleGraphicList::HandleScrollbarVisibilityChange( TBool aVisible )
+    {
+    TInt variety = aVisible ? 1 : 0;
+    iLayoutData->SetSecondIndicatorLayout(list_single_graphic_pane_g2(variety));
+    }
+
 // End of file
--- a/uifw/ganes/src/HgSingleLargeList.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgSingleLargeList.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -23,6 +23,7 @@
 #include "HgIndicatorManager.h"
 #include "HgDrawUtils.h"
 #include "HgConstants.h"
+#include "HgScrollbar.h"
 
 #include <AknsUtils.h>
 #include <AknUtils.h>
@@ -87,7 +88,8 @@
     for(TInt i = 0; i <= KMaxNumberOfTitleIndicators; ++i)
         iLayoutData->SetTitleLayout( i, list_single_large_graphic_pane_t1( i ));
     iLayoutData->SetFirstIndicatorLayout(list_single_large_graphic_pane_g3(0));
-    iLayoutData->SetSecondIndicatorLayout(list_single_large_graphic_pane_g2(1));
+    TInt variety = iScrollbar && !iScrollbar->IsStatic() ? 1 : 0;
+    iLayoutData->SetSecondIndicatorLayout(list_single_large_graphic_pane_g2(variety));
     
     // Get the Row rect.
     TAknLayoutRect layout;
@@ -175,6 +177,14 @@
     
     }
 
-
+// -----------------------------------------------------------------------------
+// CHgSingleLargeList::HandleScrollbarVisibilityChange()
+// -----------------------------------------------------------------------------
+//
+void CHgSingleLargeList::HandleScrollbarVisibilityChange( TBool aVisible )
+    {
+    TInt variety = aVisible ? 1 : 0;
+    iLayoutData->SetSecondIndicatorLayout(list_single_large_graphic_pane_g2(variety));
+    }
 
 // End of file
--- a/uifw/ganes/src/HgSingleTextList.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgSingleTextList.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -21,6 +21,7 @@
 #include "HgLayoutData.h"
 #include "HgIndicatorManager.h"
 #include "HgDrawUtils.h"
+#include "HgScrollbar.h"
 
 #include <AknsUtils.h>
 #include <AknUtils.h>
@@ -73,7 +74,8 @@
     for(TInt i = 0; i <= KMaxNumberOfTitleIndicators; ++i)
         iLayoutData->SetTitleLayout( i, list_single_pane_t1( i ) );
     iLayoutData->SetFirstIndicatorLayout(list_single_pane_g2(0));
-    iLayoutData->SetSecondIndicatorLayout(list_single_pane_g1(1));
+    TInt variety = iScrollbar && !iScrollbar->IsStatic() ? 1 : 0;
+    iLayoutData->SetSecondIndicatorLayout(list_single_pane_g1(variety));
 
     // Get the Row rect.
     TAknLayoutRect layout;
@@ -155,4 +157,14 @@
     
     }
 
-// EOF
+// -----------------------------------------------------------------------------
+// CHgSingleTextList::HandleScrollbarVisibilityChange()
+// -----------------------------------------------------------------------------
+//
+void CHgSingleTextList::HandleScrollbarVisibilityChange( TBool aVisible )
+    {
+    TInt variety = aVisible ? 1 : 0;
+    iLayoutData->SetSecondIndicatorLayout(list_single_pane_g1(variety));
+    }
+
+// End of file
--- a/uifw/ganes/src/HgSingleTextListWithIcon.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgSingleTextListWithIcon.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -21,6 +21,7 @@
 #include "HgLayoutData.h"
 #include "HgIndicatorManager.h"
 #include "HgDrawUtils.h"
+#include "HgScrollbar.h"
 
 #include <AknsUtils.h>
 #include <AknUtils.h>
@@ -33,7 +34,7 @@
 using namespace AknLayoutScalable_Avkon;
 
 // -----------------------------------------------------------------------------
-// CHgSingleTextList::NewL()
+// CHgSingleTextListWithIcon::NewL()
 // -----------------------------------------------------------------------------
 //
 EXPORT_C CHgSingleTextListWithIcon* CHgSingleTextListWithIcon::NewL(
@@ -62,7 +63,7 @@
     }
 
 // -----------------------------------------------------------------------------
-// CHgSingleTextList::HandleSizeChanged()
+// CHgSingleTextListWithIcon::HandleSizeChanged()
 // -----------------------------------------------------------------------------
 //
 void CHgSingleTextListWithIcon::HandleSizeChanged()
@@ -73,7 +74,8 @@
     for(TInt i = 0; i <= KMaxNumberOfTitleIndicators; ++i)
         iGraphicLayoutData->SetTitleLayout( i, list_single_graphic_pane_t1( i ));
     iGraphicLayoutData->SetFirstIndicatorLayout(list_single_graphic_pane_g3(0));
-    iGraphicLayoutData->SetSecondIndicatorLayout(list_single_graphic_pane_g2(1));
+    TInt variety = iScrollbar && !iScrollbar->IsStatic() ? 1 : 0;
+    iGraphicLayoutData->SetSecondIndicatorLayout(list_single_graphic_pane_g2(variety));
 
     // Get the Row rect.
     TAknLayoutRect layout;
@@ -89,7 +91,7 @@
     }
 
 // -----------------------------------------------------------------------------
-// CHgSingleTextList::DrawItem()
+// CHgSingleTextListWithIcon::DrawItem()
 // -----------------------------------------------------------------------------
 //
 void CHgSingleTextListWithIcon::DrawItem( TInt aIndex, const TRect& aRect ) const
@@ -146,7 +148,7 @@
    }
 
 // -----------------------------------------------------------------------------
-// CHgSingleTextList::CHgSingleTextList()
+// CHgSingleTextListWithIcon::CHgSingleTextList()
 // -----------------------------------------------------------------------------
 //
 CHgSingleTextListWithIcon::CHgSingleTextListWithIcon( TInt aItemCount, 
@@ -156,11 +158,25 @@
     SetFlags( EHgScrollerFlatStatusPane ); // Set Flat status pane on
     }
 
+// -----------------------------------------------------------------------------
+// CHgSingleTextListWithIcon::CHgSingleTextList()
+// -----------------------------------------------------------------------------
+//
 void CHgSingleTextListWithIcon::ConstructL( const TRect& aRect, RWsSession* aSession )
     {
     iGraphicLayoutData = CHgListLayoutData::NewL();
     CHgList::ConstructL( aRect, aSession );
     }
 
+// -----------------------------------------------------------------------------
+// CHgSingleTextListWithIcon::HandleScrollbarVisibilityChange()
+// -----------------------------------------------------------------------------
+//
+void CHgSingleTextListWithIcon::HandleScrollbarVisibilityChange( TBool aVisible )
+    {
+    CHgSingleTextList::HandleScrollbarVisibilityChange(aVisible);
+    TInt variety = aVisible ? 1 : 0;
+    iGraphicLayoutData->SetSecondIndicatorLayout(list_single_graphic_pane_g2(variety));
+    }
 
-// EOF
+// End of file
--- a/uifw/ganes/src/HgVgButton.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgVgButton.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -169,8 +169,18 @@
         {
         TRgb color(KRgbWhite);
         color.SetAlpha(aAlpha * 255.0f);
-        HgVgHelper::DrawImageColorized(iImage, color, iPosition, aWindowRect, EFalse);
+        HgVgHelper::DrawImageColorized(iImage, color, iPosition, aWindowRect, EFalse, iLandscape);
         }
     }
 
+// -----------------------------------------------------------------------------
+// CHgVgButton::EnableLanscapeRendering()
+// -----------------------------------------------------------------------------
+//
+void CHgVgButton::EnableLandscapeRendering(TBool aEnabled)
+{
+    iLandscape = aEnabled;
+}
+
+
 // End of File
--- a/uifw/ganes/src/HgVgEGL.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgVgEGL.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -280,12 +280,11 @@
 // CHgVgEGL::GetSurfaceToBitmap()
 // ---------------------------------------------------------------------------
 //     
-CFbsBitmap* CHgVgEGL::GetSurfaceToBitmap(const TRect& aRect) const
+CFbsBitmap* CHgVgEGL::GetSurfaceToBitmap(const TRect& aRect, TBool aLandscape) const
     {
     // make sure every thing is in back buffer
     vgFinish();
 
-    VGuint dataStride = 4 * aRect.Width();
     
     CFbsBitmap* bitmap = new CFbsBitmap();        
     
@@ -293,23 +292,49 @@
         {
         // create temporary buffer for data
         RBuf8 buf;
-        buf.Create(aRect.Height() * dataStride);
+        buf.Create(aRect.Width() * aRect.Height() * 4);
         buf.Fill(0xFF);
 
-        // read data from vg (this is sloooww)
-        vgReadPixels((void*)buf.Ptr(), 
-                dataStride, VG_sARGB_8888, 0, 0, aRect.Width(), aRect.Height());                
+        // read data back from vg (this is sloooww)
+        VGint dataStride = 0;
+        if (aLandscape)
+            {
+            dataStride = 4 * aRect.Height();
+            vgReadPixels((void*)buf.Ptr(), 
+                    dataStride, VG_sARGB_8888, 0, 0, aRect.Height(), aRect.Width());
+            }
+        else
+            {
+            dataStride = 4 * aRect.Width();
+            vgReadPixels((void*)buf.Ptr(), 
+                    dataStride, VG_sARGB_8888, 0, 0, aRect.Width(), aRect.Height());            
+            }
 
         // because of bug in vg driver we need to swap memory using for loop, because
-        // negative datastrides case crash
+        // negative datastrides cause crash
         bitmap->Create(TSize(aRect.Width(), aRect.Height()), EColor16MA);
         bitmap->BeginDataAccess();
-        TUint8* ptrTrg = (TUint8*)bitmap->DataAddress();
-        TUint8* ptrSrc = (TUint8*)buf.Ptr();
-        for (TInt i = 0; i < aRect.Height(); i++)
+        if (!aLandscape)
             {
-            Mem::Copy(ptrTrg + dataStride * i, 
-                    ptrSrc + dataStride * (aRect.Height() - i - 1), dataStride);
+            TUint8* ptrTrg = (TUint8*)bitmap->DataAddress();
+            TUint8* ptrSrc = (TUint8*)buf.Ptr();
+            for (TInt i = 0; i < aRect.Height(); i++)
+                {
+                Mem::Copy(ptrTrg + dataStride * i, 
+                        ptrSrc + dataStride * (aRect.Height() - i - 1), dataStride);
+                }
+            }
+        else
+            {
+            TUint32* ptrTrg = (TUint32*)bitmap->DataAddress();
+            TUint32* ptrSrc = (TUint32*)buf.Ptr();
+            for (TInt i = 0; i < aRect.Height(); i++)
+                {
+                for (TInt j = 0; j < aRect.Width(); j++)
+                    {
+                    ptrTrg[(aRect.Height() - i - 1)*aRect.Width()+(aRect.Width()-j-1)] = ptrSrc[j*aRect.Height()+i];
+                    }
+                }
             }
         bitmap->EndDataAccess();
         buf.Close();
--- a/uifw/ganes/src/HgVgHelper.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgVgHelper.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -435,11 +435,16 @@
 // ---------------------------------------------------------------------------
 //         
 void DrawImage(VGImage aImage, 
-        const TPoint& aPos, const TRect& aWindowRect, TBool aCentered)
+        const TPoint& aPos, const TRect& aWindowRect, TBool aCentered, TBool aLandscape)
     {
             
     vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE);
     vgLoadIdentity();
+    if (aLandscape)
+        {
+        vgTranslate(0.0f, 640.0f); 
+        vgRotate(-90.0f);
+        }
 
     if (!aCentered)
         {
@@ -464,7 +469,7 @@
 // ---------------------------------------------------------------------------
 //         
 void DrawImageColorized(VGImage aImage, const TRgb& aColor, 
-        const TPoint& aPos, const TRect& aWindowRect, TBool aCentered)
+        const TPoint& aPos, const TRect& aWindowRect, TBool aCentered, TBool aLandscape)
     {
     
     VGfloat values[] = { 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0 };
@@ -477,7 +482,7 @@
     vgSetfv(VG_COLOR_TRANSFORM_VALUES, KNumColorTransformValues, values);
     vgSeti(VG_COLOR_TRANSFORM, VG_TRUE);
     
-    HgVgHelper::DrawImage(aImage, aPos, aWindowRect, aCentered);
+    HgVgHelper::DrawImage(aImage, aPos, aWindowRect, aCentered, aLandscape);
 
     vgSeti(VG_COLOR_TRANSFORM, VG_FALSE);        
     }
--- a/uifw/ganes/src/HgVgLabel.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgVgLabel.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -155,7 +155,7 @@
     shadowColor.SetAlpha(255.0f * aAlpha);
 
     //HgVgHelper::DrawImageColorized(iTextImage, shadowColor, iRect.iTl+TPoint(1,1), aWindowRect);    
-    HgVgHelper::DrawImageColorized(iTextImage, color, iRect.iTl, aWindowRect);    
+    HgVgHelper::DrawImageColorized(iTextImage, color, iRect.iTl, aWindowRect, EFalse, iLandscape);    
     }
 
 // -----------------------------------------------------------------------------
@@ -200,6 +200,10 @@
     Draw(aClientRect, 1.0f);
     }
 
+void CHgVgLabel::EnableLandscapeRendering(TBool enabled)
+{
+    iLandscape = enabled;
+}
 
 
 // End of File
--- a/uifw/ganes/src/HgVgLetterPopup.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgVgLetterPopup.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -187,6 +187,11 @@
     // draw background     
     vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
     vgLoadIdentity();
+    if (iLandscape)
+    {
+        vgTranslate(0.0f, 640.0f); 
+        vgRotate(-90.0f);        
+    }
     
     vgTranslate(iRect.iTl.iX, (aWindowRect.Height() - iRect.iBr.iY));
 
@@ -203,7 +208,7 @@
     // draw letter
     color.SetAlpha(aAlpha * 255.0f);
     HgVgHelper::DrawImageColorized(iLetterImage, 
-            color, iRect.iTl, aWindowRect, EFalse);
+            color, iRect.iTl, aWindowRect, EFalse, iLandscape);
     }
 
 void CHgVgPopup::SetLayouts(const TAknWindowComponentLayout& aPopupLayout, 
@@ -216,5 +221,10 @@
     iParentRect = aParentRect;
     }
 
+void CHgVgPopup::EnableLanscapeRendering(TBool enabled)
+{
+    iLandscape = enabled;
+}
+
 
 // End of File
--- a/uifw/ganes/src/HgVgMediaWall.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgVgMediaWall.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -123,7 +123,7 @@
     InitScreenL( aRect );
 
     InitItemsL();
-        
+
     HandleViewPositionChanged(ETrue);
     
     iCoeEnv->AddForegroundObserverL( *this );
@@ -135,9 +135,13 @@
             AknTouchGestureFw::EAknTouchGestureFwGroupFlick);
             
     ActivateL ( );
-
+#ifdef MEDIAWALL_ORIENTATION_FIX
+    iCoeEnv->WsSession().Flush();
+#endif
+    
     SetMopParent( aParent );
     SetFlags( EHgVgMediaWallDrawToWindowGC | EHgVgMediaWallUninitialized );
+    
     }
 
 // -----------------------------------------------------------------------------
@@ -145,10 +149,19 @@
 // -----------------------------------------------------------------------------
 //
 EXPORT_C void CHgVgMediaWall::InitScreenL( const TRect& aRect )
-    {               
+    {    
+        
     // Set the windows size       
     SetRect ( aRect );
-        
+
+#ifdef MEDIAWALL_ORIENTATION_FIX    
+    TSize screenSize = iCoeEnv->ScreenDevice()->SizeInPixels();
+    if (aRect == TRect(TPoint(0,0), screenSize) && iMediaWallStyle == EHgVgMediaWallStyleCoverflowFullScreen)
+        {
+        Window().FixNativeOrientation();
+        }
+#endif
+    
     }
 
 // -----------------------------------------------------------------------------
@@ -162,8 +175,6 @@
         {
         return;
         }
-  
-    //RDebug::Print(_L("\t\tMediaWall FirstIndexOnScreen=%d"), FirstIndexOnScreen());
     
     if( !iAnimationTimer->IsActive() )
         {    
@@ -353,14 +364,10 @@
 //
 void CHgVgMediaWall::Draw ( const TRect& /*aRect*/ ) const
     {
-    //RDebug::Print(_L("CHgVgMediaWall::Draw begin"));
 
     if(iFlags & EHgVgMediaWallUninitialized)
         {
-        MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-        MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
-        AknsDrawUtils::DrawBackground( skin, cc, this, SystemGc(), TPoint(0,0), 
-                Rect(), KAknsDrawParamDefault );
+        FillSystemGcWithSkin( );
         return;
         }
     
@@ -379,8 +386,7 @@
                 }
             else
                 {
-                SystemGc().SetBrushColor(KRgbRed);
-                SystemGc().Clear();
+                FillSystemGcWithSkin( );
                 }
             }
         else
@@ -398,23 +404,22 @@
         {
         if (iSurfaceBitmap)
             {
-            //RDebug::Print(_L("CHgVgMediaWall::Draw blit screenshot"));
-
             SystemGc().BitBlt( Rect().iTl, iSurfaceBitmap );
             }
         else
             {
-            //RDebug::Print(_L("CHgVgMediaWall::Draw clear red"));
-
-            // we should not get here, ever
-            // still, clear with red color for debug purposes
-            SystemGc().SetBrushColor(KRgbRed);
-            SystemGc().Clear();
+            FillSystemGcWithSkin( );
             }
         }
+    
+    }
 
-    //RDebug::Print(_L("CHgVgMediaWall::Draw end"));
-    
+void CHgVgMediaWall::FillSystemGcWithSkin( ) const
+    {
+    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+    MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+    AknsDrawUtils::DrawBackground( skin, cc, this, SystemGc(), TPoint(0,0), 
+            Rect(), KAknsDrawParamDefault );
     }
 
 // -----------------------------------------------------------------------------
@@ -1087,9 +1092,13 @@
 
     if (!DrawAll())
         return NULL;
-        
-    return iEGL->GetSurfaceToBitmap(iRect);
-        
+    
+#ifdef MEDIAWALL_ORIENTATION_FIX    
+    return iEGL->GetSurfaceToBitmap(iRect, iMediaWallStyle == EHgVgMediaWallStyleCoverflowFullScreen);        
+#else
+    return iEGL->GetSurfaceToBitmap(iRect, EFalse);            
+#endif
+    
     }
 
 // -----------------------------------------------------------------------------
@@ -1201,6 +1210,7 @@
 //     
 void CHgVgMediaWall::HandleGainingForeground()
     {
+    if(iIsForeground) return; // don't react to gaining foreground without losing it
     
     // draw previous screenshot
     DrawNow();
@@ -1228,6 +1238,7 @@
 //     
 void CHgVgMediaWall::HandleLosingForeground()
     {
+    if(!iIsForeground) return; // don't react to losing foreground without gaining it
     
     // make sure we are not animating
     HandleTransitionAnimationStop();
@@ -1277,8 +1288,6 @@
     
     CHgVgMediaWall* self = const_cast<CHgVgMediaWall*>(this);           
         
-    //RDebug::Print(_L("\t\tMediaWall FirstIndexOnScreen=%d"), self->FirstIndexOnScreen());
-
     if (!self->DrawAll())
         return;
       
@@ -1385,6 +1394,17 @@
         {
         // update view position dependant stuff
         HandleViewPositionChanged(ETrue);    
+        
+        // inform observer when needed
+        if (!iObserverNotified)
+            {
+                if (Abs(iSpring->GetX() - iSpring->EndX()) < KHalfItemWidth)
+                {
+                    iObserverNotified = ETrue;
+                    TRAP_IGNORE(
+                        iSelectionObserver->HandleSelectL((int)iSpring->EndX(), this);  )
+                }
+            }
         }
                         
     }
@@ -1402,7 +1422,7 @@
         iAnimationTimer->Cancel();
     
         // handle view position change
-        HandleViewPositionChanged();
+        HandleViewPositionChanged(EFalse);
         }
     }
 
@@ -1557,7 +1577,8 @@
             TSize(MaxViewPosition(), 1), TSize(1, 1), 
             ETrue, CHgScroller::EHgScrollerScrollBar);
     
-    iScrollBar->SetViewPosition( TPoint(iSelectedIndex, 0) );        
+    iScrollBar->SetViewPosition( TPoint(iSelectedIndex, 0) );
+    
     }
 
 // ---------------------------------------------------------------------------
@@ -1578,6 +1599,7 @@
             iEGL->InitWindowSurfaceL(Window());
         }
 
+
     delete iRenderer; iRenderer = NULL;    
     delete iArtistLabel; iArtistLabel = NULL;
     delete iAlbumLabel; iAlbumLabel = NULL;
@@ -1640,7 +1662,7 @@
     iHideSKButton = CHgVgButton::NewL(rect.Rect().Size(), rect.Rect().iTl, *icon);
 
     CleanupStack::PopAndDestroy(icon);
-    
+        
     }
 
 
@@ -1900,13 +1922,20 @@
 void CHgVgMediaWall::DrawScene()
     {
 
-    TReal t = iSpring->VelX() / iSpringVelocityToAnimationFactor;
-    if (Abs(t) > 1.0f) 
-        t = t / Abs(t);
-  
+    TReal springVel = iSpring->VelX();
+    if (iPointerDown)
+        springVel = iSpringDragVel;
+
+    TReal t = springVel / iSpringVelocityToAnimationFactor;
+    if (t > 1.0f)
+        t = 1.0f;
+    else if (t < -1.0f)
+        t = -1.0f;
+
     if (AknLayoutUtils::LayoutMirrored())
         t = -t;
     
+    
     iRenderer->SetCameraRotation(-t * iCameraRotationFactor);
                 
     if (iMediaWallStyle == EHgVgMediaWallStyleGrid)
@@ -1921,9 +1950,10 @@
         }
     else
         {
+        
         iRenderer->Draw(iItems, /*iSelectedIndex*/iSpring->GetX(), iSpring->EndX(), 
                 iSpring->GetInterpolatedX(), iAnimationAlpha, iAnimationState, 
-                iOpeningAnimationType, iMediaWallStyle, iSpring->StartX());
+                iOpeningAnimationType, iMediaWallStyle, iSpring->StartX(), springVel);
         }
     }
 
@@ -1941,10 +1971,17 @@
         if (iMediaWallStyle != EHgVgMediaWallStyleGrid)
             {
             iSpring->SetEnd(iSelectedIndex, iSpring->EndY());
-            }
+            }        
+
+        iSpringVelAtDragStart = iSpringDragVel = iSpring->VelX();
         }
+    else
+    {
+        iSpringVelAtDragStart = iSpringDragVel = 0;
+    }
     
     iPointerDown = ETrue;
+    iDragFrames = 0;
     iViewPositionAtDragStart = iSpring->GetX();
     }
 
@@ -1978,6 +2015,14 @@
         TReal x = iViewPositionAtDragStart + fDelta * iItemsToMoveOnFullScreenDrag;
         iUpdateScrollBar = ETrue;
         iSpring->Reset(x, 0);
+        
+        // interpolate velocity during frame count to zero
+        TReal t = (TReal)iDragFrames/(TReal)KFramesToZeroVelocity;
+        if (t > 1.0f) t = 1.0f;
+        iSpringDragVel = iSpringVelAtDragStart * (1.0f - t);
+        
+        iDragFrames++;
+
         HandleViewPositionChanged(ETrue);        
         // draw view at new view position
         DrawOpenVG();
@@ -2200,6 +2245,7 @@
     iSpring->SetEnd(aX, aY);
     iUpdateScrollBar = aUpdateScrollBar;
     iAnimationState = EHgVgMediaWallAnimationStateTransition;
+    iObserverNotified = EFalse;
     StartAnimationTimer();
     }
 
@@ -2358,6 +2404,17 @@
             KMediaWallFullScreenSpringMaxVelocity, 
             KPositionSnap, KMinSpringVelocity);    
 
+#ifdef MEDIAWALL_ORIENTATION_FIX    
+    iRenderer->EnableLandscapeMode(ETrue);
+    iAlbumLabel->EnableLandscapeRendering(ETrue);
+    iArtistLabel->EnableLandscapeRendering(ETrue);
+    iEmptyLabel->EnableLandscapeRendering(ETrue);
+    iSkinRenderer->EnableLanscapeRendering(ETrue);
+    iScrollBar->EnableLandscapeRendering(ETrue);
+    iHideSKButton->EnableLandscapeRendering(ETrue);
+    iLetterPopup->EnableLandscapeRendering(ETrue);
+#endif
+    
     }
 
 // -----------------------------------------------------------------------------
@@ -2458,7 +2515,9 @@
     iArtistLabel = CHgVgLabel::NewL( t1.TextRect() );
 
     iAlbumLabel->SetLayout(l0, iRect);
-    iArtistLabel->SetLayout(l1, iRect);    
+    iArtistLabel->SetLayout(l1, iRect);
+
+    
     }
 
 void CHgVgMediaWall::InitPopupL(TInt aLayoutVariant)
@@ -2469,7 +2528,8 @@
             &ScreenFont( TCoeFont( KMediaWallTBonePopupFontSize, TCoeFont::EPlain )));
 
     iLetterPopup->SetLayouts(AknLayoutScalable_Apps::cf0_flow_pane_g2(aLayoutVariant), 
-            AknLayoutScalable_Apps::cf0_flow_pane_t1(aLayoutVariant), iRect);    
+            AknLayoutScalable_Apps::cf0_flow_pane_t1(aLayoutVariant), iRect);
+    
     }
 
 // -----------------------------------------------------------------------------
@@ -2494,4 +2554,5 @@
     }
 
 
+
 // End of File
--- a/uifw/ganes/src/HgVgMediaWallRenderer.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgVgMediaWallRenderer.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -64,6 +64,29 @@
             };
 
 
+VGfloat EaseOutQuad(VGfloat start, VGfloat end, VGfloat t)
+{
+    VGfloat s = t - 1.0f;
+    VGfloat f = -(s*s*s*s) + 1.0f;    
+    return start * (1.0f - f) + end * f;
+}   
+
+VGfloat EaseInQuad(VGfloat start, VGfloat end, VGfloat t)
+{
+    VGfloat s = t;
+    VGfloat f = (s*s*s*s);    
+    return start * (1.0f - f) + end * f;
+}   
+
+
+VGfloat BoundValue(VGfloat value, VGfloat min, VGfloat max)
+{
+    if (value > max) return max;
+    if (value < min) return min;
+
+    return value;
+}
+
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -436,11 +459,18 @@
 //
 void CHgVgMediaWallRenderer::DrawQuad(CHgVgMediaWallRenderer::TQuad* q, TBool aDrawMirrored)
     {
-    vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE);
+    vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE);    
     vgLoadIdentity();
     
-    //vgTranslate(iOffset.iX, iOffset.iY);
+    if (iLandscape)
+    {
+        vgTranslate(0.0f, 640.0f); 
+        vgRotate(-90.0f);
+    }
+         
+    vgTranslate(iOffset.iX, iOffset.iY);
 
+    
     VGImage image = q->iImage;
     if (q->iNoImage)
         {
@@ -478,7 +508,8 @@
         CHgVgMediaWall::THgVgAnimationState aState, 
         CHgVgMediaWall::THgVgOpeningAnimationType aSelectionAnimationType, 
         CHgVgMediaWall::THgVgMediaWallStyle /*aStyle*/,
-        TReal aStartIndex)
+        TReal aStartIndex, 
+        TReal aSpringVelocity)
     { 
     
     TInt itemsOnScreen = 0;
@@ -486,7 +517,18 @@
             aSelectedIndex, aNextIndex,
             aViewPosition,
             aAnimationAlpha,
-            aState, aSelectionAnimationType, aStartIndex);
+            aState, aSelectionAnimationType, aStartIndex, aSpringVelocity);
+    
+    vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
+    vgLoadIdentity();
+    vgRotate(-90.0f);
+    vgTranslate(0.0f, -640.0f);
+     
+    vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE);
+    vgLoadIdentity();
+    vgRotate(-90.0f);
+    vgTranslate(0.0f, -640.0f);
+
     
     TransformAndDraw(itemsOnScreen, aSelectionAnimationType);
     }
@@ -586,6 +628,12 @@
     {
     vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
     vgLoadIdentity();
+    if (iLandscape)
+    {
+        vgTranslate(0.0f, 640.0f); 
+        vgRotate(-90.0f);
+    }
+
     //vgTranslate(iOffset.iX, iOffset.iY);
     vgScale(aWidth, aHeight);
     vgSetPaint(iGroundPaint, VG_FILL_PATH);            
@@ -753,12 +801,13 @@
 // ---------------------------------------------------------------------------
 //
 TInt CHgVgMediaWallRenderer::SetupQuads(RPointerArray<CHgVgItem>& aItems,
-        TInt aSelectedIndex, TReal aNextIndex,
+        TInt aSelectedIndex, TReal /*aNextIndex*/,
         VGfloat aViewPosition,
         VGfloat aAnimationAlpha,
         CHgVgMediaWall::THgVgAnimationState aState, 
         CHgVgMediaWall::THgVgOpeningAnimationType aOpeningAnimationType, 
-        TReal aStartIndex)
+        TReal /*aStartIndex*/, 
+        TReal aSpringVelocity)
     {
     
     
@@ -796,6 +845,9 @@
     TInt itemsOnScreen = 0;
     TInt currentRow = (TInt)aViewPosition - KSelectedItemIndex;
         
+    TReal zAlpha = Abs(aSpringVelocity / KSpringVelocityToZAlpha);
+    VGfloat zNear = HgVgHelper::Lerp(iZFar, iZNear, 1.0f - BoundValue(zAlpha, 0, 1));
+        
     while (itemsOnScreen < iQuads.Count())
         {
         TInt itemIndex = currentRow + i;
@@ -827,23 +879,24 @@
         q->iX = leftX - step * (leftIndex - fi);
         
         
-        if (aStartIndex != aNextIndex)
+        /*if (aStartIndex != aNextIndex)
             {
             // if start and next index are not same, we can just interpolate
             // items at these indices.
             if (itemIndex == (TInt)aStartIndex ||
                     itemIndex == (TInt)aNextIndex)
                 {
-                q->iZ = HgVgHelper::Lerp((VGfloat)iZNear, (VGfloat)iZFar, Abs(q->iX / leftX));
+                q->iZ = EaseInQuad((VGfloat)zNear, (VGfloat)iZFar, BoundValue(Abs(q->iX / leftX), 0, 1));
                 q->iZ = Min(q->iZ, (VGfloat)iZFar);            
                 }
             }
-        else
+        else*/
             {
             // in this case we are just dragging and startindex and left index are
             // same so we need to interpolate z for all items coming/leaving center 
             // of the screen.
-            q->iZ = HgVgHelper::Lerp((VGfloat)iZNear, (VGfloat)iZFar, Abs(q->iX / leftX));
+            
+            q->iZ = EaseInQuad((VGfloat)zNear, (VGfloat)iZFar, BoundValue(Abs(q->iX / leftX), 0, 1));
             q->iZ = Min(q->iZ, (VGfloat)iZFar);                    
             }
         
@@ -1139,4 +1192,10 @@
     iFlipXY = aEnabled;
     }
 
+void CHgVgMediaWallRenderer::EnableLandscapeMode(TBool enabled)
+{
+    iLandscape = enabled;
+}
+
+
 // End of File
--- a/uifw/ganes/src/HgVgScrollBar.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgVgScrollBar.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -169,7 +169,7 @@
         const TSize& /*aSize*/, const TRect& aWindowRect, TReal aAlpha) const
     {
     TRgb color(255, 255, 255, aAlpha * 255.0f);
-    HgVgHelper::DrawImageColorized(aImage, color, aPosition, aWindowRect, EFalse);
+    HgVgHelper::DrawImageColorized(aImage, color, aPosition, aWindowRect, EFalse, iLandscape);
     }
 
 TBool CHgVgScrollBar::IsEnabled() const
@@ -195,6 +195,10 @@
     iScrollbar->InitScrollBarL(aScrollbarRect, aTotalSize, aViewSize, aLandscapeScrolling);    
     }
 
+void CHgVgScrollBar::EnableLandscapeRendering(TBool aEnabled)
+{
+    iLandscape = aEnabled;
+}
 
 
 // End of File
--- a/uifw/ganes/src/HgVgSkinRenderer.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/ganes/src/HgVgSkinRenderer.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -137,7 +137,13 @@
 //
 void CHgVgSkinRenderer::Draw() const
     {
-    HgVgHelper::DrawImage(iSkinImage, TPoint(0, 0), iRect);
+    HgVgHelper::DrawImage(iSkinImage, TPoint(0, 0), iRect, EFalse, iLandscape);
     }
 
+void CHgVgSkinRenderer::EnableLanscapeRendering(TBool aLandscape)
+{
+    iLandscape = aLandscape;
+}
+
+
 // End of File