Revision: 201013 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 14 Apr 2010 16:14:00 +0300
branchRCL_3
changeset 16 71dd06cfe933
parent 15 08e69e956a8c
child 17 2b7609a571c9
child 18 0aa5fbdfbc30
Revision: 201013 Kit: 201015
akntouchgesturefw/inc/akntouchgesturefwdefs.h
classicui_plat/avkon_localised_texts_api/loc/avkon.loc
classicui_plat/avkon_localised_texts_api/loc/avkonsct.loc
classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h
classicui_plat/extended_options_menu_api/tsrc/conf/testdomoptionsmenu.cfg
classicui_plat/extended_options_menu_api/tsrc/conf/ui_testdomoptionsmenu.cfg
classicui_plat/extended_options_menu_api/tsrc/inc/testdomoptionsmenu.h
classicui_plat/extended_options_menu_api/tsrc/inc/testoptionsmenu.h
classicui_plat/extended_options_menu_api/tsrc/src/testdomoptionsmenublocks.cpp
classicui_plat/find_item_ui_api/inc/finditemmenu.h
classicui_plat/ganes_api/inc/ganes/HgScroller.h
classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h
classicui_plat/media_shared_document_api/media_shared_document_api.metaxml
classicui_pub/lists_api/inc/EIKLBX.H
classicui_pub/lists_api/tsrc/conf/tctestsdklistseiklbx.cfg
classicui_pub/lists_api/tsrc/conf/ui_testsdklistseiklbx.cfg
classicui_pub/lists_api/tsrc/inc/testsdklists.h
classicui_pub/lists_api/tsrc/src/testsdklistsblockseiklbx.cpp
commonuis/CommonDialogs/src/CAknCFDFileSystemEvent.cpp
commonuis/CommonDialogs/src/CAknFileSelectionEventHandler.cpp
commonuis/CommonUi/src/FindItemMenu.cpp
lafagnosticuifoundation/uigraphicsutils/gulsrc/GULUTIL.CPP
psln/Src/PslnMainViewContainer.cpp
psln/cenrep/keys_themes.xls
psln/conf/themes.confml
uifw/AknGlobalUI/AknCapServer/inc/AknCapServerEntry.h
uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp
uifw/AknGlobalUI/AknCapServer/src/AknEikSgcs.cpp
uifw/AknGlobalUI/AknCapServer/src/aknKeyFilter.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp
uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp
uifw/AvKon/aknhlist/src/akntreelistview.cpp
uifw/AvKon/aknphysics/cenrep/20021192.txt
uifw/AvKon/aknphysics/conf/s60/aknphysics.confml
uifw/AvKon/aknphysics/src/aknphysics.cpp
uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp
uifw/AvKon/aknphysics/src/aknphysicsengine.cpp
uifw/AvKon/src/AknAdaptiveSearchGrid.cpp
uifw/AvKon/src/AknAppUi.cpp
uifw/AvKon/src/AknIndicatorContainer.cpp
uifw/AvKon/src/AknInfoPopupNote.cpp
uifw/AvKon/src/AknNumEdwin.cpp
uifw/AvKon/src/AknPopupField.cpp
uifw/AvKon/src/AknSettingPage.cpp
uifw/AvKon/src/Aknslider.cpp
uifw/AvKon/src/aknPopup.cpp
uifw/AvKon/src/aknbattery.cpp
uifw/AvKon/src/akncolourselectiongrid.cpp
uifw/AvKon/src/akndialog.cpp
uifw/AvKon/src/akndiscreetpopupcontrol.cpp
uifw/AvKon/src/aknenv.cpp
uifw/AvKon/src/akngridview.cpp
uifw/AvKon/src/aknindicator.cpp
uifw/AvKon/src/aknindicatorpopupcontent.cpp
uifw/AvKon/src/aknlists.cpp
uifw/AvKon/src/aknnotewrappers.cpp
uifw/AvKon/src/aknutils.cpp
uifw/AvKon/src/aknview.cpp
uifw/AvKon/src/eikfrlb.cpp
uifw/AvKon/src/eikfrlbd.cpp
uifw/AvKon/srcdata/avkon.rss
uifw/AvKon/srcdata/smiley.rss
uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/group/bctestsingleclick.mmp
uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/inc/bctestsingleclickcase.h
uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/src/bctestsingleclickcase.cpp
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/sis/bctestdomaiwakn.pkg
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/sis/bctestdomaiwakn.pkg
uifw/EikStd/EABI/EIKCOCTLU.DEF
uifw/EikStd/bwins/EIKCOCTLU.DEF
uifw/EikStd/coctlinc/aknitemactionmenuregister.h
uifw/EikStd/coctlsrc/AknButton.cpp
uifw/EikStd/coctlsrc/AknToolbar.cpp
uifw/EikStd/coctlsrc/EIKEDWIN.CPP
uifw/EikStd/coctlsrc/EIKLBV.CPP
uifw/EikStd/coctlsrc/EIKLBX.CPP
uifw/EikStd/coctlsrc/EIKMENUB.CPP
uifw/EikStd/coctlsrc/EIKMENUP.CPP
uifw/EikStd/coctlsrc/EIKSCRLB.CPP
uifw/EikStd/coctlsrc/aknitemactionmenu.cpp
uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp
uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp
uifw/EikStd/coctlsrc/eikcba.cpp
uifw/EikStd/coctlsrc/smileymanager.cpp
uifw/EikStd/dlgsrc/EIKDIALG.CPP
uifw/EikStd/dlgsrc/EIKDPAGE.CPP
uifw/EikStd/srvuisrc/eikkeysoundserver.cpp
uifw/eikctl/src/EIKCLB.CPP
uifw/eikctl/src/EIKCLBD.CPP
uifw/eikctl/src/EIKMFNE.CPP
uifw/ganes/BWINS/ganesu.def
uifw/ganes/EABI/ganesu.def
uifw/ganes/inc/HgVgConstants.h
uifw/ganes/inc/HgVgLetterPopup.h
uifw/ganes/src/HgGrid.cpp
uifw/ganes/src/HgScroller.cpp
uifw/ganes/src/HgVgLetterPopup.cpp
uifw/ganes/src/HgVgMediaWall.cpp
uifw/ganes/src/HgVgMediaWallRenderer.cpp
uifw/ganes/src/HgVgSkinRenderer.cpp
uiutils/Findutil/inc/FindUtilChinese.h
uiutils/Findutil/src/FindUtilChinese.cpp
--- a/akntouchgesturefw/inc/akntouchgesturefwdefs.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/akntouchgesturefw/inc/akntouchgesturefwdefs.h	Wed Apr 14 16:14:00 2010 +0300
@@ -99,7 +99,7 @@
 const TUint32 KAknTouchGestureFwAllGestureTypes = 0x7fffffff;
 
 /// Default feedback intensity.
-const TInt KAknTouchGestureFwFeedbackIntensity = 50;
+const TInt KAknTouchGestureFwFeedbackIntensity = 100;
 
 /// Pinch feedback timeout (in microseconds).
 const TInt KAknTouchGestureFwPinchFeedbackTimeout = 200000;
--- a/classicui_plat/avkon_localised_texts_api/loc/avkon.loc	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/avkon_localised_texts_api/loc/avkon.loc	Wed Apr 14 16:14:00 2010 +0300
@@ -4290,4 +4290,18 @@
 //
 #define qtn_iim_uni_ind_default "New unread chats"
 
+//d: Text in touch inputmethod menu list
+//d: Command to change editor input mode to alpha input mode
+//d: Only Korean
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_activate_english_mode "Alpha mode"
+
+//d: Text in touch inputmethod menu list
+//d: Command to change editor input mode to Korean character input mode
+//d: Only Korean
+//l: list_single_pane_t1_cp2
+//r: 5.0
+#define qtn_activate_korean_mode "Korean mode"
+
 // End of File
--- a/classicui_plat/avkon_localised_texts_api/loc/avkonsct.loc	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/avkon_localised_texts_api/loc/avkonsct.loc	Wed Apr 14 16:14:00 2010 +0300
@@ -208,7 +208,21 @@
 //
 #define qtn_sct_cdma_sp_sms_speci_chars_upper ".@?!-,&:'\"+=/$*#%;\<>{}[]_()"<0x2029>"~^`|"
 
+//d: Special character table character set for Korean variant.
+//d: Special character table opened in Messaging, Note, Contacts, and Calendar editor.
+//d: Maximum 255 characters. 
+//d: Unicode format: <0x0041><0x0042><0x0043> etc.
+//d: <0x2029> = line feed. <0x0020> = space
+//d: Only Korean
+//l:(none)
+//
+#define qtn_sct_kor_special_characters ".,'?!\"-()@/\\:_;+&%*#=<>~^`"<0x2665><0x007C><0x0020><0x2029><0x2592><0x25A4><0x25A5><0x25A0><0x25A1><0x25B2><0x25B3><0x25B6><0x25B7><0x25BC><0x25BD><0x25C0><0x25C1><0x25C6><0x25C7><0x25CB><0x25CE><0x25CF><0x2605><0x2606><0x2661><0x2660><0x2664><0x2663><0x2667><0x25D0><0x25D1><0x260E><0x266A><0x266C><0x2640><0x2642><0x2299><0x2252><0x2260><0x00B1><0x00D7><0x00F7><0x2264><0x2265><0x2282><0x2283><0x2286><0x2287><0x2208><0x220B><0x221E><0x222B><0x222E><0x2234><0x2235><0x2200><0x00B0><0x221A><0x2030><0x2153><0x2154><0x2202><0x223D><0x2211><0x2103><0x2126><0x2113><0x3389><0x338F><0x3392><0x33A1><0x005B><0x005D><0x007B><0x007D><0xFFE6><0x20AC><0x0024><0xFFE5><0xFFE1><0x203B><0x00A7><0x261C><0x261E><0x2668><0x2190><0x2191><0x2192><0x2193><0x2196><0x2197><0x2198><0x2199>
 
+//d: Special character table character set for lockcode.
+//d: Maximum 255 characters.
+//l:(none)
+//
+#define qtn_sct_special_characters_lockcode ".,'?!\"-()@/:_;+&#%*=<>$[]{}\\~^`|"
 
 // End of File
 
--- a/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h	Wed Apr 14 16:14:00 2010 +0300
@@ -105,6 +105,18 @@
             MAknCollection& aCollection );
 
     /**
+     * Adds collection to the item action menu of this view / dialog / appUi.
+     * 
+     * @param aCollection Collection implementing MAknCollection interface.
+     * @param aMenuBarOwner Owner of the menubar that collection will be
+     *        registered with.
+     * @return Pointer to the item action menu instance.
+     * Ownership does not transfer to caller.
+     */
+    IMPORT_C static CAknItemActionMenu* RegisterCollectionL(
+            MAknCollection& aCollection, MObjectProvider* aMenuBarOwner );
+
+    /**
      * Removes collection of this item action menu.
      * 
      * @param aCollection Collection to be removed.
--- a/classicui_plat/extended_options_menu_api/tsrc/conf/testdomoptionsmenu.cfg	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/tsrc/conf/testdomoptionsmenu.cfg	Wed Apr 14 16:14:00 2010 +0300
@@ -25,3 +25,7 @@
 run testscripter c:\testframework\ui_testdomoptionsmenu.cfg 5
 [Endtest] 
 
+[Test]
+title TestIMRegisterCollection2L
+run testscripter c:\testframework\ui_testdomoptionsmenu.cfg 6
+[Endtest] 
--- a/classicui_plat/extended_options_menu_api/tsrc/conf/ui_testdomoptionsmenu.cfg	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/tsrc/conf/ui_testdomoptionsmenu.cfg	Wed Apr 14 16:14:00 2010 +0300
@@ -37,3 +37,9 @@
 delete test
 [Endtest]
 
+[Test]
+title TestIMRegisterCollection2L
+create testdomoptionsmenu test
+test TestIMRegisterCollection2L
+delete test
+[Endtest]
--- a/classicui_plat/extended_options_menu_api/tsrc/inc/testdomoptionsmenu.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/tsrc/inc/testdomoptionsmenu.h	Wed Apr 14 16:14:00 2010 +0300
@@ -155,7 +155,16 @@
          * @return Symbian OS error code.
         */
         virtual TInt TestIMCollectionChangedL( CStifItemParser& aItem );
-	
+
+        /**
+         * TestIMRegisterCollection2L test function of class CAknItemActionMenu for in aknitemactionmenu.h
+         * @since S60 5.2
+         * @param aItem never used
+         * @return Symbian OS error code.
+        */
+        virtual TInt TestIMRegisterCollection2L( CStifItemParser& aItem );
+
+        
     public:     // Data
 
     protected:  // Data      
--- a/classicui_plat/extended_options_menu_api/tsrc/inc/testoptionsmenu.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/tsrc/inc/testoptionsmenu.h	Wed Apr 14 16:14:00 2010 +0300
@@ -25,7 +25,7 @@
  *  CTestOptionsMenu test class for STIF Test Framework TestScripter.
  *  @since S60 5.0
  */
-class TTestCollection : public MAknCollection
+class TTestCollection : public MAknCollection, public MObjectProvider
 {
 // Constructors and destructor
 public:
@@ -71,6 +71,17 @@
     	{
     	return 0;
     	}
+
+public:// Functions inherit from MObjectProvider classes
+
+    /**
+     * Object provider
+     */
+    TTypeUid::Ptr MopSupplyObject( TTypeUid aId )
+        {
+        return TTypeUid::Null();
+        }
+
 };
 
 #endif /*T_TESDOMMENU_H*/
--- a/classicui_plat/extended_options_menu_api/tsrc/src/testdomoptionsmenublocks.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/tsrc/src/testdomoptionsmenublocks.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -59,6 +59,7 @@
         ENTRY( "TestIMShowMenuL", CTestDomOptionsMenu::TestIMShowMenuL ),
         ENTRY( "TestIMInitMenuL", CTestDomOptionsMenu::TestIMInitMenuL ),
         ENTRY( "TestIMCollectionChangedL", CTestDomOptionsMenu::TestIMCollectionChangedL ),
+        ENTRY( "TestIMRegisterCollection2L", CTestDomOptionsMenu::TestIMRegisterCollection2L )
         };
 
     const TInt count = sizeof( KFunctions ) / 
@@ -204,4 +205,30 @@
     return KErrNone;
     }
 
+// -----------------------------------------------------------------------------
+// CTestSDKOptionsMenu::TestIMRegisterCollection2L
+// -----------------------------------------------------------------------------
+//
+TInt CTestDomOptionsMenu::TestIMRegisterCollection2L( CStifItemParser& /*aItem*/ )
+    {
+    // Print to UI
+    _LIT( KTestSDKDomMenu, "TestSDKDomMenu" );
+    _LIT( KTestIMRegisterCollectionL, "In TestIMRegisterCollection2L" );
+    TestModuleIf().Printf( 0, KTestSDKDomMenu, KTestIMRegisterCollectionL );
+    // Print to log file
+    iLog->Log( KTestIMRegisterCollectionL );
+
+    if( !iCollection )
+        {
+        iCollection = new(ELeave) TTestCollection;
+        }
+    
+    //since STIF does not enable single click now, can't get instance of CAknItemActionMenu. 
+    //Hence following method will not be invoked.
+    CAknItemActionMenu::RegisterCollectionL( *iCollection, iCollection );
+    return KErrNone;
+
+    }
+
+
 //  [End of File] - Do not remove
--- a/classicui_plat/find_item_ui_api/inc/finditemmenu.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/find_item_ui_api/inc/finditemmenu.h	Wed Apr 14 16:14:00 2010 +0300
@@ -371,12 +371,6 @@
         TBool ItemFinderExists();
         TPtrC CurrentSelection(); 
         
-        /**
-         *  Returns text highlight status.
-         *  @return ETrue if there is highlighted text, otherwise EFalse
-         */
-        TBool HasSelection() const;
-        
     private:
         /**
         * Enumeration for menu command ids
--- a/classicui_plat/ganes_api/inc/ganes/HgScroller.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/ganes_api/inc/ganes/HgScroller.h	Wed Apr 14 16:14:00 2010 +0300
@@ -316,6 +316,11 @@
      */
     IMPORT_C void DisableScrollBuffer();
 
+    /**
+     * 
+     */
+    IMPORT_C void SetMenuProviderL( MObjectProvider* aMenuProvider ); 
+    
     // Selection modes. Used in internal key marking implemention.
     enum TSelectionMode
         {
--- a/classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h	Wed Apr 14 16:14:00 2010 +0300
@@ -460,12 +460,12 @@
     /**
      * Does transition animation, called by DoAnimation.
      */
-    void DoTransitionAnimation();
+    TBool DoTransitionAnimation();
         
     /**
      * Does selection animation
      */
-    void DoSelectionAnimation();
+    TBool DoSelectionAnimation();
     
     /**
      * Callback method for animation
--- a/classicui_plat/media_shared_document_api/media_shared_document_api.metaxml	Wed Mar 31 21:59:52 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" ?>
-<api id="bb49a13f8e3a9f21f21cdc2bc6a2e47a" dataversion="1.0">
-  <name>Media Shared Document API</name>
-  <description>Offers embedded applications sharing documents of this type the means to exchange data.</description>
-  <type>c++</type>
-  <subsystem>commonuis</subsystem>
-  <libs>
-    <lib name="commonui.lib" />
-  </libs>
-  <release category="domain"/>
-  <attributes>
-     <!-- This indicates wether the api provedes separate html documentation -->
-     <!-- or is the additional documentation generated from headers. -->
-     <!-- If you are unsuere then the value is "no" -->
-     <htmldocprovided>yes</htmldocprovided>
-     <adaptation>no</adaptation>
-  </attributes>
-</api>
--- a/classicui_pub/lists_api/inc/EIKLBX.H	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_pub/lists_api/inc/EIKLBX.H	Wed Apr 14 16:14:00 2010 +0300
@@ -1519,6 +1519,17 @@
      */
     IMPORT_C void DisableItemSpecificMenu();
     
+    /**
+     * Checks if highlight drawing is enabled. If single click is
+     * enabled highlight drawing is by default disabled, but highlight comes 
+     * visible with hardware keys. 
+     * 
+     * @return ETrue if highlight is enabled, EFalse if not.
+     *
+     * @since S60 5.2
+     */
+    IMPORT_C TBool IsHighlightEnabled();
+    
 private:
     IMPORT_C virtual void CEikListBox_Reserved(); // listbox use only
     void HorizontalScroll(TInt aScrollAmountInPixels);
--- a/classicui_pub/lists_api/tsrc/conf/tctestsdklistseiklbx.cfg	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_pub/lists_api/tsrc/conf/tctestsdklistseiklbx.cfg	Wed Apr 14 16:14:00 2010 +0300
@@ -689,3 +689,8 @@
 title TestLBItemsInSingleLine
 run testscripter c:\testframework\ui_testsdklistseiklbx.cfg 138
 [Endtest]
+
+[Test]
+title TestLBIsHighlightEnabled
+run testscripter c:\testframework\ui_testsdklistseiklbx.cfg 139
+[Endtest]
--- a/classicui_pub/lists_api/tsrc/conf/ui_testsdklistseiklbx.cfg	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_pub/lists_api/tsrc/conf/ui_testsdklistseiklbx.cfg	Wed Apr 14 16:14:00 2010 +0300
@@ -1098,3 +1098,12 @@
 test TestLBItemsInSingleLine
 delete test
 [Endtest]
+
+[Test] //139
+title TestLBIsHighlightEnabled
+create testsdklists test
+test TestLBConstructorL
+test TestLBConstructWithTGulBorderL
+test TestLBIsHighlightEnabled
+delete test
+[Endtest]
--- a/classicui_pub/lists_api/tsrc/inc/testsdklists.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_pub/lists_api/tsrc/inc/testsdklists.h	Wed Apr 14 16:14:00 2010 +0300
@@ -5877,6 +5877,16 @@
      */
     virtual TInt TestLBItemsInSingleLine( CStifItemParser& aItem );       
 
+    /**
+     * TestLBSetItemsInSingleLine test function for testing the 
+     *     IsHighlightEnabled function
+     * @since S60 5.2
+     * @param aItem never used
+     * @return Symbian OS error code.
+     */
+    virtual TInt TestLBIsHighlightEnabled( CStifItemParser& aItem );
+
+    
 private:    // eikslb.h
     // class CSettingsListBoxItemDrawer
     /**
--- a/classicui_pub/lists_api/tsrc/src/testsdklistsblockseiklbx.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/classicui_pub/lists_api/tsrc/src/testsdklistsblockseiklbx.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -4393,5 +4393,23 @@
     return KErrNone;    
     }
 
+// -----------------------------------------------------------------------------
+// CTestSDKLists::TestLBIsHighlightEnabled
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKLists::TestLBIsHighlightEnabled( CStifItemParser& /*aItem*/)
+    { 
+    // Print to UI
+    _LIT( KTestModule, "EIKLBXTestModule" );
+    _LIT( KTestEIKLBX, "In TestLBIsHighlightEnabled" );
+    TestModuleIf().Printf( 0, KTestModule, KTestEIKLBX );
+    // Print to log file
+    iLog->Log( KTestEIKLBX );
+
+    TBool enabled = iListBox->IsHighlightEnabled();
+    STIF_ASSERT_TRUE( enabled );
+    
+    return KErrNone;    
+    }
 
 // [End of file]
--- a/commonuis/CommonDialogs/src/CAknCFDFileSystemEvent.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/commonuis/CommonDialogs/src/CAknCFDFileSystemEvent.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -109,11 +109,10 @@
 
     // If not ENotifyDisk, do refresh when event is checked
     // using CheckFileSystemEvent
-    if ( iNotifyType == ENotifyEntry )
+    if ( iNotifyType == ENotifyDisk || iNotifyType == ENotifyEntry )
         {
         iObserver.NotifyFileSystemChangedL();
         }
-    Setup();
     }
 
 // -----------------------------------------------------------------------------
--- a/commonuis/CommonDialogs/src/CAknFileSelectionEventHandler.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/commonuis/CommonDialogs/src/CAknFileSelectionEventHandler.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -408,5 +408,6 @@
     {
     iModel->UpdateItemListL();
     iPopupList->HandleFileSystemChangedL(iModel);
+    iFSObserver->Setup();
     }
 // End of File
--- a/commonuis/CommonUi/src/FindItemMenu.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/commonuis/CommonUi/src/FindItemMenu.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -53,7 +53,7 @@
 #endif // !RD_VIRTUAL_PHONEBOOK
 
 #include "finditem.hrh"
-#include <FindItemui.rsg>
+#include <finditemui.rsg>
 #include <aknnotewrappers.h>
 
 // add to gallery related
@@ -356,21 +356,6 @@
             *iFindItemUrlItemString );
         }
     }
-	
-// -----------------------------------------------------------------------------
-// HasSelection
-//  Returns ETrue if editor has highlighted text
-// -----------------------------------------------------------------------------
-//
-TBool CFindItemMenu::HasSelection() const
-    {
-    TBool retval ( EFalse );
-    if ( iAutomaticFind )
-        {
-        retval = iAutomaticFind->HasSelection();
-        }
-    return retval;
-    }
 
 // -----------------------------------------------------------------------------
 // AddMenuItemL
@@ -556,41 +541,15 @@
     TBuf<KMaxMenuTextLength> tempBuf;
 
     // Adds menu items depending the selected item
-    if ( HasSelection() )
+    switch ( itemType )
         {
-        switch ( itemType )
+        case CItemFinder::EPhoneNumber:
             {
-            case CItemFinder::EPhoneNumber:
-                {
 #ifdef RD_VOIP_REL_2_2
-                if ( FeatureManager::FeatureSupported(KFeatureIdCommonVoip ) )
-                    {
-                    // show call menu if allowed
-                    if ( !( iMenuItemFlags & CFindItemMenu::ECallItem ) )
-                        {
-                        // Call
-                        iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
-                        AddMenuItemL(
-                            *iMenuPane,
-                            EFindItemCmdCall,
-                            ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
-                            0,
-                            tempBuf );
-                        }
-                     // if context menu, we will show call item anyway
-                     else if ( iIsContextMenu )
-                        {
-                        // Call
-                        iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
-                        AddMenuItemL(
-                            *iMenuPane,
-                            EFindItemCmdCall,
-                            EFindItemContextMenuPlaceHolder,
-                            0,
-                            tempBuf );
-                        }
-                    }
-                else
+            if ( FeatureManager::FeatureSupported(KFeatureIdCommonVoip ) )
+                {
+                // show call menu if allowed
+                if ( !( iMenuItemFlags & CFindItemMenu::ECallItem ) )
                     {
                     // Call
                     iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
@@ -601,8 +560,21 @@
                         0,
                         tempBuf );
                     }
-                index = EFindItemCmdCall;
-#else
+                 // if context menu, we will show call item anyway
+                 else if ( iIsContextMenu )
+                    {
+                    // Call
+                    iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
+                    AddMenuItemL(
+                        *iMenuPane,
+                        EFindItemCmdCall,
+                        EFindItemContextMenuPlaceHolder,
+                        0,
+                        tempBuf );
+                    }
+                }
+            else
+                {
                 // Call
                 iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
                 AddMenuItemL(
@@ -611,132 +583,141 @@
                     ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
                     0,
                     tempBuf );
-                index = EFindItemCmdCall;
+                }
+            index = EFindItemCmdCall;
+#else
+            // Call
+            iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
+            AddMenuItemL(
+                *iMenuPane,
+                EFindItemCmdCall,
+                ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
+                0,
+                tempBuf );
+            index = EFindItemCmdCall;
 #endif // RD_VOIP_REL_2_2
-                // Write
+            // Write
+            iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_MESSAGE_SUB );
+            AddMenuItemL(
+                *iMenuPane,
+                EFindItemSubMenuSend,
+                index,
+               0,//R_FINDITEM_NUMBER_MESSAGE_SUBMENU,
+                tempBuf );
+            index = EFindItemSubMenuSend;
+
+            break;
+            }
+        case CItemFinder::EUrlAddress:
+            {
+            iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_GOTO_URL );
+
+            // check if not rstp    
+            if ( iAutomaticFind->CurrentItemExt().iItemDescriptor->FindF( KRtspUrlAddress ) == KErrNotFound )
+                {
+                AddMenuItemL(
+                    *iMenuPane,
+                    EFindItemCmdGoToUrl,
+                    ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
+                    0,
+                    tempBuf);
+                index = EFindItemCmdGoToUrl;
+
+                if ( !iIsContextMenu )
+                    {
+                    // Add bookmark
+                    iCoeEnv->ReadResourceL(
+                        tempBuf, R_FINDITEMMENU_ADD_BOOKMARK );
+                    AddMenuItemL(
+                        *iMenuPane,
+                        EFindItemCmdAddToBookmark,
+                        index,
+                        0,
+                        tempBuf );
+                    index = EFindItemCmdAddToBookmark;
+                    }
+                }
+            else
+                {
+                AddMenuItemL(
+                    *iMenuPane,
+                    EFindItemCmdGoToRstp,
+                    ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
+                    0,
+                    tempBuf );
+                index = EFindItemCmdGoToRstp;
+
+                if ( !iIsContextMenu )
+                    {
+                    iCoeEnv->ReadResourceL(
+                        tempBuf, R_FINDITEMMENU_ADD_TO_GALLERY );
+                    AddMenuItemL(
+                        *iMenuPane,
+                        EFindItemCmdAddToGallery,
+                        index,
+                        0,
+                        tempBuf );
+                    index = EFindItemCmdAddToGallery;
+                    }
+                }
+            break;
+            }
+        case CItemFinder::EEmailAddress:
+            {
+            // Checks VoIP profile count and local variation
+            if ( iIsContextMenu && iFindItemVoIPExtension->VoIPProfilesExistL() )
+                {
+                //Call
+                iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
+                AddMenuItemL(
+                    *iMenuPane,
+                    EFindItemCmdCall,
+                    EFindItemContextMenuPlaceHolder,
+                    0,
+                    tempBuf );
+                index = EFindItemCmdCall; // Replaces the call ui menu when email
+                                          // field is selected.
+                }
+
+            // Write
+            if( iEmailOverSmsFeatureSupported || iMMSFeatureSupported ||
+                iEmailUiFeatureSupported ) // Sometimes submenu can be empty.
+                {
                 iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_MESSAGE_SUB );
                 AddMenuItemL(
                     *iMenuPane,
                     EFindItemSubMenuSend,
-                    index,
-                   0,//R_FINDITEM_NUMBER_MESSAGE_SUBMENU,
+                    ( ( iIsContextMenu &&
+                        !iFindItemVoIPExtension->VoIPProfilesExistL() ) ?
+                            EFindItemContextMenuPlaceHolder : index ),
+                    0,//R_FINDITEM_EMAIL_MESSAGE_SUBMENU,
                     tempBuf );
                 index = EFindItemSubMenuSend;
-    
-                break;
                 }
-            case CItemFinder::EUrlAddress:
-                {
-                iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_GOTO_URL );
-    
-                // check if not rstp    
-                if ( iAutomaticFind->CurrentItemExt().iItemDescriptor->FindF( KRtspUrlAddress ) == KErrNotFound )
-                    {
-                    AddMenuItemL(
-                        *iMenuPane,
-                        EFindItemCmdGoToUrl,
-                        ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
-                        0,
-                        tempBuf);
-                    index = EFindItemCmdGoToUrl;
-    
-                    if ( !iIsContextMenu )
-                        {
-                        // Add bookmark
-                        iCoeEnv->ReadResourceL(
-                            tempBuf, R_FINDITEMMENU_ADD_BOOKMARK );
-                        AddMenuItemL(
-                            *iMenuPane,
-                            EFindItemCmdAddToBookmark,
-                            index,
-                            0,
-                            tempBuf );
-                        index = EFindItemCmdAddToBookmark;
-                        }
-                    }
-                else
-                    {
-                    AddMenuItemL(
-                        *iMenuPane,
-                        EFindItemCmdGoToRstp,
-                        ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
-                        0,
-                        tempBuf );
-                    index = EFindItemCmdGoToRstp;
-    
-                    if ( !iIsContextMenu )
-                        {
-                        iCoeEnv->ReadResourceL(
-                            tempBuf, R_FINDITEMMENU_ADD_TO_GALLERY );
-                        AddMenuItemL(
-                            *iMenuPane,
-                            EFindItemCmdAddToGallery,
-                            index,
-                            0,
-                            tempBuf );
-                        index = EFindItemCmdAddToGallery;
-                        }
-                    }
-                break;
-                }
-            case CItemFinder::EEmailAddress:
-                {
-                // Checks VoIP profile count and local variation
-                if ( iIsContextMenu && iFindItemVoIPExtension->VoIPProfilesExistL() )
-                    {
-                    //Call
-                    iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
-                    AddMenuItemL(
-                        *iMenuPane,
-                        EFindItemCmdCall,
-                        EFindItemContextMenuPlaceHolder,
-                        0,
-                        tempBuf );
-                    index = EFindItemCmdCall; // Replaces the call ui menu when email
-                                              // field is selected.
-                    }
-    
-                // Write
-                if( iEmailOverSmsFeatureSupported || iMMSFeatureSupported ||
-                    iEmailUiFeatureSupported ) // Sometimes submenu can be empty.
-                    {
-                    iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_MESSAGE_SUB );
-                    AddMenuItemL(
-                        *iMenuPane,
-                        EFindItemSubMenuSend,
-                        ( ( iIsContextMenu &&
-                            !iFindItemVoIPExtension->VoIPProfilesExistL() ) ?
-                                EFindItemContextMenuPlaceHolder : index ),
-                        0,//R_FINDITEM_EMAIL_MESSAGE_SUBMENU,
-                        tempBuf );
-                    index = EFindItemSubMenuSend;
-                    }
-                break;
-                }
-            case CItemFinder::EUriScheme:
-                {
-                // Use
-                iCoeEnv->ReadResourceL( tempBuf, R_QTN_OPTIONS_SCHEME_USE );
-                AddMenuItemL(
-                    *iMenuPane,
-                    EFindItemCmdUse,
-                    ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
-                    0,
-                    tempBuf );
-                index = EFindItemCmdUse;
-                break;
-                }
-            default:
-                {
-                // Something else, probably nothing selected or new type which we
-                // don't support.
-                break;
-                }
+            break;
+            }
+        case CItemFinder::EUriScheme:
+            {
+            // Use
+            iCoeEnv->ReadResourceL( tempBuf, R_QTN_OPTIONS_SCHEME_USE );
+            AddMenuItemL(
+                *iMenuPane,
+                EFindItemCmdUse,
+                ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
+                0,
+                tempBuf );
+            index = EFindItemCmdUse;
+            break;
+            }
+        default:
+            {
+            // Something else, probably nothing selected or new type which we
+            // don't support.
+            break;
             }
         }
-    
     // Call
-    if ( HasSelection() && (
+    if (
         ( itemType == CItemFinder::ENoneSelected ) &&
         (
             (
@@ -752,7 +733,7 @@
         ||
             ( itemType == CItemFinder::EEmailAddress &&
             iFindItemVoIPExtension->VoIPProfilesExistL() &&
-            !iIsContextMenu ) )
+            !iIsContextMenu )
         )
         {
 #ifdef RD_VOIP_REL_2_2
@@ -842,10 +823,10 @@
               CleanupStack::PopAndDestroy( ); 
               }
 
-        if( HasSelection() && ( (!iAutomaticFind || len != 0) && 
+        if( (!iAutomaticFind || len != 0) && 
             highlight &&        
             ( itemType != CItemFinder::ENoneSelected || 
-            iSenderHighlighted ) ) )
+            iSenderHighlighted ) )
             {
             iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_COPY );
             AddMenuItemL(
@@ -860,14 +841,14 @@
         }
 
      // Add to contacts
-     if ( HasSelection() && ( ( itemType != CItemFinder::EUriScheme ) &&
+     if ( ( itemType != CItemFinder::EUriScheme ) &&
         !( itemType == CItemFinder::EUrlAddress &&
         iIsContextMenu ) &&
         ( ( ( ( !iIsSenderKnown &&
         iSenderDescriptor->Length() ) ||
         iCallbackNumber ) &&
         itemType == CItemFinder::ENoneSelected ) ||
-        itemType != CItemFinder::ENoneSelected ) ) )
+        itemType != CItemFinder::ENoneSelected ) )
         {
         AddMenuItemL(
             *iMenuPane,
@@ -1699,16 +1680,11 @@
     {       
     HBufC* item = 0;
     TInt len = 0;
-    if ( iAutomaticFind && iAutomaticFind->CurrentSelection().Length() > 0 )
+    if ( iAutomaticFind && iAutomaticFind->CurrentItemExt().iItemType != CItemFinder::ENoneSelected )
         {
         item = iAutomaticFind->CurrentSelection().AllocLC();                        
         len = item->Length();
         }
-    else if ( iAutomaticFind && iAutomaticFind->CurrentItemExt().iItemDescriptor )
-        {
-        item = iAutomaticFind->CurrentItemExt().iItemDescriptor->AllocLC();
-        len = item->Length();
-        }
     else if( iSenderHighlighted )
         {
         item = iSenderDisplayText->AllocLC();
--- a/lafagnosticuifoundation/uigraphicsutils/gulsrc/GULUTIL.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/lafagnosticuifoundation/uigraphicsutils/gulsrc/GULUTIL.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -866,6 +866,12 @@
 		return TRgb::Color16M(aRgb.Color16M());
 	case EColor4K:
 		return TRgb::Color4K(aRgb.Color4K());
+	case EColor16MU:
+		return TRgb::Color16MU(aRgb.Color16MU());
+	case EColor16MA:
+		return TRgb::Color16MA(aRgb.Color16MA());
+	case EColor16MAP:
+		return TRgb::Color16MAP(aRgb.Color16MAP());
 	default:
 		return aRgb;
 		}
@@ -893,6 +899,12 @@
 		return aRgb.Color16M();
 	case EColor4K:
 		return aRgb.Color4K();
+	case EColor16MU:
+	    return aRgb.Color16MU();
+	case EColor16MA:
+	    return aRgb.Color16MA();
+	case EColor16MAP:
+	    return aRgb.Color16MAP();
 	default:
 		return aRgb.Color16M();
 		}
--- a/psln/Src/PslnMainViewContainer.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/psln/Src/PslnMainViewContainer.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -239,13 +239,20 @@
     CleanupStack::PushL( item );
     reallocItem = NULL; // do not use anymore.
     TPtr ptr = item->Des();
+
+    TInt wallpaperOffset = 0;
+    if ( aIndex == KPslnScreenSaverId 
+	    && !iPslnUi->ViewSupport().IsSet( CPslnUi::EPslnWallpaperView ) )
+        {
+        wallpaperOffset = 1;
+        }
     if ( aOffset != KErrNotFound )
         {
-        iItemArray->InsertL( aIndex + aOffset, ptr );
+        iItemArray->InsertL( aIndex + aOffset - wallpaperOffset, ptr );
         }
     else
         {
-        iItemArray->InsertL( aIndex, ptr );
+        iItemArray->InsertL( aIndex - wallpaperOffset, ptr );
         }
     CleanupStack::PopAndDestroy( item );
     PSLN_TRACE_DEBUG("CPslnMainViewContainer::MakeItemL END");
Binary file psln/cenrep/keys_themes.xls has changed
Binary file psln/conf/themes.confml has changed
--- a/uifw/AknGlobalUI/AknCapServer/inc/AknCapServerEntry.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AknGlobalUI/AknCapServer/inc/AknCapServerEntry.h	Wed Apr 14 16:14:00 2010 +0300
@@ -188,6 +188,11 @@
         {
         return iShortTimeGlobalNoteDisplaying;
         }
+
+    CAknCapAppServerAlternateFs* AlternateFS()
+        {
+        return iAlternateFS;
+        }
     
 private:
     void PublishHiddenList();
--- a/uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -33,7 +33,7 @@
 #include "avkoninternalpskeys.h"     // KAknIdleAppWindowGroupId
 #include <AknCapServerDefs.h>
 #include <activeidle2domainpskeys.h>
-#include <EIKPRIV.rsg>
+#include <eikpriv.rsg>
 #include <coedef.h>
 #include <eiksvdef.h>
 #include <aknconsts.h>
--- a/uifw/AknGlobalUI/AknCapServer/src/AknEikSgcs.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AknGlobalUI/AknCapServer/src/AknEikSgcs.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -26,6 +26,7 @@
 #include <aknappui.h>
 #include <e32property.h>
 #include <UikonInternalPSKeys.h>
+#include <akncapserveralternatefsplugin.h>
 #include <avkondomainpskeys.h>
 #include <AknSettingCache.h>
 #include "AknCapServerEntry.h"
@@ -47,7 +48,7 @@
 #include <akntransitionutils.h>
 #endif
 
-#include <LayoutPack.cdl.h>
+#include <layoutpack.cdl.h>
 #include <CdlRefs.h>
 const TInt KCdlEComInterfaceId = 0x101f8243;
 const TInt KMatrixMenuAppId = 0x101F4CD2;
@@ -1374,6 +1375,13 @@
 
 void CEikSgcServer::SetIdleState(TBool aFlag)
     {
+	//idle is changed to nonidle if taskswitcher is shown 
+    if (aFlag && iAknCapAppServerAppUi->AlternateFS()
+              && iAknCapAppServerAppUi->AlternateFS()->IsVisible())
+        {
+        aFlag = EFalse;
+        }
+
     // Update the P&S key only if the value has been changed.
     if ((iNotificationsInIdleAllowed && !aFlag)
             || (!iNotificationsInIdleAllowed && aFlag))
--- a/uifw/AknGlobalUI/AknCapServer/src/aknKeyFilter.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AknGlobalUI/AknCapServer/src/aknKeyFilter.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -22,10 +22,12 @@
 #include <e32property.h>
 #include <UikonInternalPSKeys.h>    // KUikLayoutState, KUikFlipStatus
 #include <AvkonInternalCRKeys.h>    // KAknQwertyInputModeActive
-#include <EIKPRIV.rsg>
+#include <eikpriv.rsg>
 #include <AknDef.h>
 #include <AknSgcc.h>
 #include <aknenv.h>
+#include <AknFepInternalPSKeys.h>
+#include <AknFepGlobalEnums.h>
 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <uikon/eikenvinterface.h>
 #endif
@@ -166,6 +168,18 @@
     
     // Set default value for the KAknKeyBoardLayout Pub&Sub key.
     RProperty::Set(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
+    
+    #ifdef RD_SCALABLE_UI_V2 
+    // Define KAknFepVirtualKeyboardType Pub&sub key.
+	RProperty::Define( KPSUidAknFep, KAknFepVirtualKeyboardType, RProperty::EInt );
+	// Set default value for KAknFepVirtualKeyboardType Pub&sub key.
+	RProperty::Set( KPSUidAknFep, KAknFepVirtualKeyboardType, EPtiKeyboard12Key );	
+	
+	// Define KAknFepTouchInputActive Pub&sub key
+	RProperty::Define( KPSUidAknFep, KAknFepTouchInputActive, RProperty::EInt );
+	// Set default value for KAknFepTouchInputActive Pub&sub key.
+	RProperty::Set( KPSUidAknFep, KAknFepTouchInputActive, 0 );
+    #endif // RD_SCALABLE_UI_V2
 #else
     
     RProperty::Define( KCRUidAvkon, KAknKeyBoardLayout, RProperty::EInt );
@@ -174,6 +188,18 @@
     iAvkonRepository->Get(KAknKeyBoardLayout, keyboardLayout); 
     RProperty::Set(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
 
+	#ifdef RD_SCALABLE_UI_V2 
+	// Define KAknFepVirtualKeyboardType Pub&sub key.
+	RProperty::Define( KPSUidAknFep, KAknFepVirtualKeyboardType, RProperty::EInt );
+	// Set default value for KAknFepVirtualKeyboardType Pub&sub key.
+	RProperty::Set( KPSUidAknFep, KAknFepVirtualKeyboardType, EPtiKeyboard12Key );
+	
+	// Define KAknFepTouchInputActive Pub&sub key
+	RProperty::Define( KPSUidAknFep, KAknFepTouchInputActive, RProperty::EInt );
+	// Set default value for KAknFepTouchInputActive Pub&sub key.
+	RProperty::Set( KPSUidAknFep, KAknFepTouchInputActive, 0 );
+	
+	#endif // RD_SCALABLE_UI_V2   
 #endif // !__WINS__   
     TBool isQwertyOn = EFalse;
     switch(keyboardLayout)
@@ -408,6 +434,17 @@
             iHomeTimer = NULL;
             if ( !iAppUi->HandleShortAppsKeyPressL() )
                 {
+                RWsSession& ws = iEikonEnv->WsSession();
+                TApaTaskList apList( ws );
+                TApaTask task = apList.FindApp( iHomeViewId.iAppUid );
+                if( task.Exists() && task.WgId() == ws.GetFocusWindowGroup() )
+                    {
+                    GfxTransEffect::BeginFullScreen(
+                        AknTransEffect::EApplicationExit,
+                        TRect(),
+                        AknTransEffect::EParameterType,
+                        AknTransEffect::GfxTransParam( iHomeViewId.iAppUid ) );
+                    }
                 ToggleShellL();
                 }
 
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -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	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -772,7 +772,7 @@
         }
     
     if (Rect().Contains(aPointerEvent.iPosition) && (aPointerEvent.iType == TPointerEvent::EButton1Up)
-        && iIsAlarm)
+        && iIsAlarm && iCaptured)
         {
         if (!iIsAlarmWakeup)
             {
--- a/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -1155,7 +1155,7 @@
 //
 TBool CAknTreeListPhysicsHandler::PointerOnEmptyArea( TPoint aPosition )
     {        
-    if ( aPosition.iY <= WorldHeight() )
+    if ( aPosition.iY - iViewRect.iTl.iY <= WorldHeight() )
         {
         return EFalse;
         }
--- a/uifw/AvKon/aknhlist/src/akntreelistview.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/aknhlist/src/akntreelistview.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -861,6 +861,8 @@
             if ( HighlightEnabled() )
                 {
                 EnableHighlight( EFalse );
+                // Redraw item
+                SetFocusedItem( FocusedItem(), FocusIndex(), ETrue );
                 }
             break;
             }
@@ -897,6 +899,7 @@
         {
         if( aPointerEvent.iType == TPointerEvent::EButton1Down )  
             {
+            iFlags.Clear( EFlagIgnoreButtonUpEvent );
             iPreviouslyFocusedItem = FocusedItem(); 
             }
 
@@ -1288,7 +1291,8 @@
 
     iIsPressedDownState = EFalse;
     iIsDragged = EFalse;
-    iItemActionMenu = CAknItemActionMenu::RegisterCollectionL( *this );
+    iItemActionMenu = CAknItemActionMenu::RegisterCollectionL( *this, this );
+
     if ( iItemActionMenu )
         {
         iLongTapDetector = CAknLongTapDetector::NewL( this );
@@ -2874,7 +2878,7 @@
                     AknListUtils::DrawSeparator( gc, offsetRect, textColor, skin );
                     }
 
-                TBool focused = ( IsFocused() && FocusedItem() &&
+                TBool focused = ( FocusedItem() &&
                     iItems[ii].Item() == FocusedItem() );
 
                 if ( SingleClickEnabled() && !HighlightEnabled() )
Binary file uifw/AvKon/aknphysics/cenrep/20021192.txt has changed
Binary file uifw/AvKon/aknphysics/conf/s60/aknphysics.confml has changed
--- a/uifw/AvKon/aknphysics/src/aknphysics.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/aknphysics/src/aknphysics.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -939,7 +939,6 @@
     // Create Physics timer to step physics emulation
     iPhysics = CAknHighResPeriodic::NewL(
         CActive::EPriorityStandard, nullThreadOpen ? &iNullThread : NULL );
-    iPhysics->SetMinCallBackPeriod( FrameDelay() * 1000 );
     
     iEngine = CAknPhysicsEngine::NewL( this );
     iParamProvider = CAknPhysicsParameterProvider::NewL();
@@ -947,6 +946,7 @@
     iConeObserver = CAknPhysicsConeObserver::NewL( this, iRestrictor );
     iConeObserver->SetViewWindowControl( aViewControl );
     iFeedback = MTouchFeedback::Instance();
+    iPhysics->SetMinCallBackPeriod( FrameDelay() * 1000 );
     }
 
 
--- a/uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -289,7 +289,7 @@
                         {
                         if ( child->Rect().Contains( aEvent->iPosition ) )
                             {
-                            target = ETargetOtherControl;
+                            target = ETargetChildControl;
                             }
                         }
                     }
@@ -346,8 +346,9 @@
     if ( ongoingAction == CAknPhysics::EAknPhysicsActionFlicking )
         {
         // Event not targeted to view - stop flick
-        if ( ( eventTarget == ETargetOtherControl || 
-                eventTarget == ETargetChildControl ) && aTargetControl )
+        if (aTargetControl && (eventTarget == ETargetOtherControl 
+                || (eventTarget == ETargetChildControl && aTargetControl
+                != iWindowControl)))
             {
             stopPhysics = ETrue;
             aTargetControl->IgnoreEventsUntilNextPointerUp();
--- a/uifw/AvKon/aknphysics/src/aknphysicsengine.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/aknphysics/src/aknphysicsengine.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -267,7 +267,7 @@
     dSpaceCollide ( iSpace, this , &CAknPhysicsEngine::CallbackFunc );
 
     // Take a simulation step 
-    dWorldQuickStep( iWorldId, REAL( 0.1 ) ); 
+    dWorldQuickStep( iWorldId, REAL( 0.06 ) ); 
 
     // Remove all joints in the contact
     dJointGroupEmpty( iContactGroup );
--- a/uifw/AvKon/src/AknAdaptiveSearchGrid.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/AknAdaptiveSearchGrid.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -425,6 +425,7 @@
         button->SetBackground(this);
         button->SetTextColorIds( KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG65 );
         button->ActivateL();
+        button->MakeVisible( EFalse );
         return button;
         }
     else
@@ -986,8 +987,16 @@
         iPrevButton->MakeVisible( ETrue );          
         iPageIndicator->MakeVisible( ETrue );   
         }
-    iCloseButton->MakeVisible( ETrue );
-    iDeleteButton->MakeVisible( ETrue );
+    if(iGridChars)
+        {
+        iCloseButton->MakeVisible( ETrue );
+        iDeleteButton->MakeVisible( ETrue );
+        }
+    else
+        {
+        iCloseButton->MakeVisible( EFalse );
+        iDeleteButton->MakeVisible( EFalse );
+        }
     }
     
 // -----------------------------------------------------------------------------
--- a/uifw/AvKon/src/AknAppUi.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/AknAppUi.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 - 2008 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"
@@ -556,6 +556,8 @@
 
 EXPORT_C CAknAppUiBase::~CAknAppUiBase()
     {
+    AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this );
+
     if (iAppUiBaseExtension)
         {
         MTouchFeedback::DestroyInstance();
@@ -661,6 +663,7 @@
         delete defaultOrientationCr;
         defaultOrientationCr = NULL;
         }
+
     iAknFlags.Assign(EOrientationSpecified, orientationFlags&EAppOrientationSpecifiedFlag);
     iAknFlags.Assign(EOrientationLandscape, orientationFlags&EAppOrientationLandscapeFlag);
     iAknFlags.Assign(EOrientationAutomatic, orientationFlags&EAppOrientationAutomaticFlag);
@@ -672,11 +675,21 @@
         {
         iAknFlags.Set( ETouchCompatible );
         }
+    else if ( aAppUiFlags & EAknSingleClickCompatibleFlag )
+        {
+        // If application is single click compatible then it needs to
+        // be also touch compatible, so set that flag also if application
+        // has forgotten.
+        iAknFlags.Set( ETouchCompatible );
+        }
     else
         {
+        // Set the touch compatible flag for all applications that
+        // reside on the ROM, since all platform applications should
+        // be touch compatible. 
         RProcess process;
         TFileName fileName = process.FileName();
-        _LIT(KRomDrive,"z:");
+        _LIT( KRomDrive, "z:" );
         
         if ( fileName.FindF( KRomDrive ) == 0 )
             {
--- a/uifw/AvKon/src/AknIndicatorContainer.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/AknIndicatorContainer.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -835,9 +835,7 @@
 
 EXPORT_C TInt CAknIndicatorContainer::CountComponentControls() const
     {
-    TInt n = CountShownIndicator();
-    //__ASSERT_DEBUG ( n == iIndicatorsShown, User::Panic(_L( "indicatorshow"),n ) );
-    return n;
+    return  iIndicators->Count();
     }
 
 TInt CAknIndicatorContainer::CountShownIndicator() const
@@ -857,32 +855,15 @@
 
 EXPORT_C CCoeControl* CAknIndicatorContainer::ComponentControl(TInt aIndex) const
     {
-    TInt count = iIndicators->Count();
-
-    TInt ii = 0;
-    for (ii = 0; (ii < count) && (aIndex >= 0); ii++)
-        {
-        if ( iIndicators->At(ii)->IndicatorState() && (iIndicators->At(ii)->Priority() != KIndicatorNotShown))
-            {
-            aIndex--;
-            }
-        }
-
-    if ( ii > 0 )
-        {
-        return iIndicators->At(--ii);
-        }
-    else
-        {
-        return NULL;
-        }
+    return iIndicators->At(aIndex);
     }
 
 
 EXPORT_C void CAknIndicatorContainer::Draw( const TRect& aRect ) const
     {
     if ( iExtension->iStatusPane && 
-         iExtension->iStatusPane->IsTransparent() )
+         iExtension->iStatusPane->IsTransparent() &&
+         ( iIndicatorContext != EQueryEditorIndicators ) )
         {
         CWindowGc& gc = SystemGc();
         TRgb rgb(TRgb::Color16MA(0));
--- a/uifw/AvKon/src/AknInfoPopupNote.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/AknInfoPopupNote.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -449,7 +449,8 @@
         }
     else if( aType == KEikMessageFadeAllWindows )
         {
-        if ( IsVisible() && iHideWhenAppFaded )
+        // Infopopu will be canceled when be faded no matter visible or not.
+        if ( iHideWhenAppFaded )
             {
             iController.HideInfoPopupNote();
             }
--- a/uifw/AvKon/src/AknNumEdwin.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/AknNumEdwin.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -127,6 +127,7 @@
 	else
 		{
 		SetTextL( &KEmptyText );
+		ReportEventL( MCoeControlObserver::EEventStateChanged );
 		}
 	}
 
--- a/uifw/AvKon/src/AknPopupField.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/AknPopupField.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -445,6 +445,7 @@
             if ((iSelectionList->Position() != rect.iTl) || (iSelectionList->Size() != rect.Size()))
                 {
                 iSelectionList->SetRect(rect);
+                SetScrollBarSelectionL();
                 }
             AknsUtils::RegisterControlPosition(this);
             AknsUtils::RegisterControlPosition(iSelectionList);
@@ -655,15 +656,30 @@
             case MEikListBoxObserver::EEventItemSingleClicked:
                 {
                 CListBoxView* view = iSelectionList->View();
-                
-                if ( view->CurrentItemIndex() != iExtension->iOldItemIndex )
+                TInt selection = view->CurrentItemIndex(); 
+                if ( selection != iExtension->iOldItemIndex )
                     {
                     view->DeselectItem( iExtension->iOldItemIndex );
-                    iExtension->iOldItemIndex = view->CurrentItemIndex();
-                    view->SelectItemL( iExtension->iOldItemIndex );
+                    iExtension->iOldItemIndex = selection;
+                    view->SelectItemL( selection );
+
+                    TInt decoratedIndex;
+                    TBool decorated = iDecorator.DecoratedIndex( decoratedIndex );
+                    if ( decorated && ( selection  == decoratedIndex ) )
+                        {
+                        TBool accepted = iValue->CreateEditorL();
+                        if ( !accepted )
+                            {
+                            break; 
+                            }
+                        }
+                    else
+                        {
+                        iValue->SetCurrentValueIndex( selection );
+                        }
                     }
                 }
-
+            // fall through
             case MEikListBoxObserver::EEventItemDoubleClicked:
             case MEikListBoxObserver::EEventEnterKeyPressed:
                 {
@@ -1205,23 +1221,27 @@
 
     if (aAccept)
         {
-        // get current selection
-        const TInt selection=iSelectionList->CurrentItemIndex();
-        TInt decoratedIndex;
-        TBool decorated = iDecorator.DecoratedIndex(decoratedIndex);
-        if (decorated && (selection == decoratedIndex))
+        if ( iSelectionList->IsHighlightEnabled() )
             {
-            TBool accepted = iValue->CreateEditorL();
-            if (!accepted)
+            // get current selection
+            const TInt selection=iSelectionList->CurrentItemIndex();
+            TInt decoratedIndex;
+            TBool decorated = iDecorator.DecoratedIndex(decoratedIndex);
+            if (decorated && (selection == decoratedIndex))
                 {
-                // dialog was cancelled, so popup list must remain
-                finished = EFalse;
+                TBool accepted = iValue->CreateEditorL();
+                if (!accepted)
+                    {
+                    // dialog was cancelled, so popup list must remain
+                    finished = EFalse;
+                    }
+                }
+            else
+                {
+                iValue->SetCurrentValueIndex(selection);
                 }
             }
-        else
-            iValue->SetCurrentValueIndex(selection);
         }
-
     if (finished)
         {
         delete iCba;
--- a/uifw/AvKon/src/AknSettingPage.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/AknSettingPage.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -47,6 +47,8 @@
 #include <AknPopupFader.h>
 #include <gfxtranseffect/gfxtranseffect.h>
 #include <akntransitionutils.h>
+#include <touchfeedback.h>
+#include <akntranseffect.h>
 #include "aknitemactionmenuregister.h"
 #include "aknqueryeditorindicator.h"
 
@@ -1355,6 +1357,24 @@
  */
 EXPORT_C void CAknSettingPage::AttemptExitL(TBool aAccept)
 	{
+    if ( AknLayoutUtils::PenEnabled() )
+        {
+        MTouchFeedback* feedback = MTouchFeedback::Instance();
+        if ( feedback )
+            {
+            TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
+            if ( CAknTransitionUtils::TransitionsEnabled(
+                    AknTransEffect::EComponentTransitionsOff ) )
+                {
+                fbLogicalType = ETouchFeedbackDecreasingPopUp;
+                }
+            feedback->InstantFeedback(
+                                   this,
+                                   fbLogicalType,
+                                   ETouchFeedbackVibra,
+                                   TPointerEvent() );
+            }
+        }
 	if ( OkToExitL( aAccept ) )
 		{
 		DismissL( aAccept );
@@ -1654,6 +1674,25 @@
 // Ensure we have a menu bar by this point
 	__ASSERT_DEBUG( iMenuBar, Panic( EAknPanicSettingPageNoMenuBar ) ) ;
 
+    if ( AknLayoutUtils::PenEnabled() )
+        {
+        MTouchFeedback* feedback = MTouchFeedback::Instance();
+        if ( feedback )
+            {
+            TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
+            if ( CAknTransitionUtils::TransitionsEnabled(
+                    AknTransEffect::EComponentTransitionsOff ) )
+                {
+                fbLogicalType = ETouchFeedbackIncreasingPopUp;
+                }
+            feedback->InstantFeedback(
+                                   this,
+                                   fbLogicalType,
+                                   ETouchFeedbackVibra,
+                                   TPointerEvent() );
+            }
+        }
+    
 	DynamicInitL();
 	ActivateL();
 
--- a/uifw/AvKon/src/Aknslider.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/Aknslider.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -63,7 +63,7 @@
 // Default draw color 
 const TInt KAknSliderDefaultDrawColor = 120;
 const TInt KScrollRepeatTimeout = 250000; // 0.25 seconds
-const TInt KStableFeedbackIntesity = 50;
+const TInt KStableFeedbackIntesity = 100;
 const TInt KFeedbackTimeout = 100000;
 const TInt KNoFeedbackTimeout = 0;
 const TInt KStepThreshold = 15;
--- a/uifw/AvKon/src/aknPopup.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/aknPopup.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -30,6 +30,7 @@
 #include <skinlayout.cdl.h>
 #include <aknglobalpopupprioritycontroller.h>
 #include <touchfeedback.h>
+#include <akntranseffect.h>
 
 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
 #include <gfxtranseffect/gfxtranseffect.h>
@@ -239,7 +240,7 @@
     // last member ste before the actiave scheduler is started.
 
     // Reset action menu register
-    AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( NULL );
+    AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this );
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -384,6 +385,25 @@
     {
     _AKNTRACE_FUNC_ENTER;
     __ASSERT_DEBUG(iListBox,Panic(EAknPanicListboxUndefined));
+    if ( AknLayoutUtils::PenEnabled() )
+        {
+        MTouchFeedback* feedback = MTouchFeedback::Instance();
+        if ( feedback )
+            {
+            TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
+            if ( CAknTransitionUtils::TransitionsEnabled(
+                    AknTransEffect::EComponentTransitionsOff ) )
+                {
+                fbLogicalType = ETouchFeedbackIncreasingPopUp;
+                }
+            feedback->InstantFeedback(
+                                   this,
+                                   fbLogicalType,
+                                   ETouchFeedbackVibra,
+                                   TPointerEvent() );
+            }
+        }
+    
     iPopoutCba->SetBoundingRect(TRect(iAvkonAppUi->ApplicationRect().Size()));
     
     // Disable item specific menu just before the popup is about to be shown.
@@ -798,6 +818,24 @@
 EXPORT_C void CAknPopupList::AttemptExitL(TBool aAccept)
     {
     _AKNTRACE_FUNC_ENTER;
+    if ( AknLayoutUtils::PenEnabled() )
+        {
+        MTouchFeedback* feedback = MTouchFeedback::Instance();
+        if ( feedback )
+            {
+            TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
+            if ( CAknTransitionUtils::TransitionsEnabled(
+                    AknTransEffect::EComponentTransitionsOff ) )
+                {
+                fbLogicalType = ETouchFeedbackDecreasingPopUp;
+                }
+            feedback->InstantFeedback(
+                                   this,
+                                   fbLogicalType,
+                                   ETouchFeedbackVibra,
+                                   TPointerEvent() );
+            }
+        }
     //EFTG-7HWDP6.
     if( FindBox()
         && !( FindBox()->Editor().AknEdwinFlags() & EAknEditorFlagTouchInputModeOpened )
--- a/uifw/AvKon/src/aknbattery.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/aknbattery.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -581,6 +581,23 @@
         return;
         }
 
+    CEikStatusPaneBase* sp = CEikStatusPaneBase::Current();
+	if( sp )
+	    {
+        TInt statusPaneCurrentLayoutResourceId = sp->CurrentLayoutResId();
+        if(statusPaneCurrentLayoutResourceId == R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE
+                    || statusPaneCurrentLayoutResourceId == R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE_MIRRORED)
+            {
+            MTouchFeedback* feedback = MTouchFeedback::Instance();
+            if ( feedback )
+                {
+                feedback->RemoveFeedbackForControl( this );
+                }
+        
+            AknsUtils::DeregisterControlPosition( this );
+            return;
+            }
+          }       
     // Get the rect of battery pane.
     TRect rect( Rect() );
 
@@ -611,7 +628,7 @@
                 // here if the down event happened inside this control,
                 // but the up event inside digital clock or indicator
                 // pane area.
-                CEikStatusPaneBase* sp = CEikStatusPaneBase::Current();
+                
                 TBool pointerUpInIndicatorArea( EFalse );
                 TBool pointerUpInClockArea( EFalse );
                     
--- a/uifw/AvKon/src/akncolourselectiongrid.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/akncolourselectiongrid.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -1723,17 +1723,32 @@
     // close the color grid: 
     // if the NGA effects are off, use “pop-up”.
     // If NGA effects are on, use “pop-up closed”.
-    MTouchFeedback* feedback = MTouchFeedback::Instance();
-
+    if( AknLayoutUtils::PenEnabled() )
+        {
+        MTouchFeedback* feedback = MTouchFeedback::Instance();
+        if ( feedback )
+            {
+            if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+                {
+                feedback->InstantFeedback( this,
+                                            ETouchFeedbackIncreasingPopUp,
+                                            ETouchFeedbackVibra,
+                                            TPointerEvent() );
+                }
+            else
+                {
+                feedback->InstantFeedback( this,
+                                            ETouchFeedbackPopUp,
+                                            ETouchFeedbackVibra,
+                                            TPointerEvent() );
+                }
+            }
+        }
     switch (aButton)
         {
         case EAknSoftkeyInsert:
         case EEikBidOk:
             {
-            if ( feedback )
-                {
-                feedback->InstantFeedback( ETouchFeedbackBasic );
-                }
             TInt index = iGrid->CurrentItemIndex();
 
             if (iNoneBox)
@@ -1749,20 +1764,7 @@
             }
         default:
             {
-            if ( feedback )
-                {
-                if( AknLayoutUtils::PenEnabled() )
-                    {
-                    if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
-                        {
-                        feedback->InstantFeedback( ETouchFeedbackDecreasingPopUp );
-                        }
-                    else
-                        {
-                        feedback->InstantFeedback( ETouchFeedbackPopUp );
-                        }
-                    }
-                }
+
             break;
             }
         }
@@ -1827,18 +1829,24 @@
     // open the color grid: 
     // if the NGA effects are off, use “pop-up”.
     // If NGA effects are on, use “increasing long touch”.
+    if( AknLayoutUtils::PenEnabled() )
+        {
     MTouchFeedback* feedback = MTouchFeedback::Instance();
     if ( feedback )
-        {
-        if( AknLayoutUtils::PenEnabled() )
             {
             if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
                 {
-                feedback->InstantFeedback( ETouchFeedbackIncreasingPopUp );
+                feedback->InstantFeedback( this,
+                                            ETouchFeedbackIncreasingPopUp,
+                                            ETouchFeedbackVibra,
+                                            TPointerEvent() );
                 }
             else
                 {
-                feedback->InstantFeedback( ETouchFeedbackPopUp );
+                feedback->InstantFeedback( this,
+                                            ETouchFeedbackPopUp,
+                                            ETouchFeedbackVibra,
+                                            TPointerEvent() );
                 }
             }
         }
--- a/uifw/AvKon/src/akndialog.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/akndialog.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -87,7 +87,7 @@
  */
 EXPORT_C CAknDialog::~CAknDialog() 
 	{
-    AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( NULL );
+    AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this );
 
     if ( iCoeEnv->AppUi() && iAttributes )
 		if (iAttributes->iAknDialogFlags&EAknDialogFlagDefaultSounds) // return original sound stack
--- a/uifw/AvKon/src/akndiscreetpopupcontrol.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/akndiscreetpopupcontrol.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -755,50 +755,53 @@
     const TPointerEvent& aPointerEvent )
     {
     TBool eventInRect( Rect().Contains( aPointerEvent.iPosition ) );
-
-    // Pointer down - set pressed-down state (popup completely visible while
-    // pressed-down)
-    if ( aPointerEvent.iType == TPointerEvent::EButton1Down
-         && eventInRect
-         && iInternalFlags.IsClear( EDismissed ) )
+    
+    // The discreet popup which is global won't handle pointer event if there is notifier be popping up.
+    if( !iInternalFlags.IsSet( EGlobal ) || iCoeEnv->RootWin().OrdinalPriority() < ECoeWinPriorityAlwaysAtFront ) 
         {
-        _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Down" );
-        SetPressedDownState( ETrue );
-        ImmediateFeedback( ETouchFeedbackSensitive );
-        }
-
-    // Pointer drag - reset pressed-down state if pointer out of popup area
-    else if ( aPointerEvent.iType == TPointerEvent::EDrag )
-        {
-        _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EDrag" );
-        iInternalFlags.Set( EDragged );
-        if ( !eventInRect && iInternalFlags.IsSet( EPressedDown ) )
+        // Pointer down - set pressed-down state (popup completely visible while
+        // pressed-down)
+        if ( aPointerEvent.iType == TPointerEvent::EButton1Down 
+        	 && eventInRect
+             && iInternalFlags.IsClear( EDismissed ) )
+            {
+            _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Down" );
+            SetPressedDownState( ETrue );
+            ImmediateFeedback( ETouchFeedbackSensitive );
+            }
+    
+        // Pointer drag - reset pressed-down state if pointer out of popup area
+        else if ( aPointerEvent.iType == TPointerEvent::EDrag )
             {
-            iInternalFlags.Clear( EPressedDown );
+            _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EDrag" );
+            iInternalFlags.Set( EDragged );
+            if ( !eventInRect && iInternalFlags.IsSet( EPressedDown ) )
+                {
+                iInternalFlags.Clear( EPressedDown );
+                }
+            else if ( eventInRect && !iInternalFlags.IsSet( EPressedDown ) )
+                {
+                iInternalFlags.Set( EPressedDown );
+                }
             }
-        else if ( eventInRect && !iInternalFlags.IsSet( EPressedDown ) )
-            {
-            iInternalFlags.Set( EPressedDown );
+    
+        // Pointer up - reset pressed-down state 
+        else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+            {        
+            _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Up" );
+            if ( eventInRect )
+                {
+                NotifyObserverL();
+                }        
+            // Start fading away
+            if ( iInternalFlags.IsClear( EDismissed ) )
+                {
+                iInternalFlags.Set( EDismissed );
+                RequestExitL();
+                }
+            SetPressedDownState( EFalse );
             }
         }
 
-    // Pointer up - reset pressed-down state 
-    else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
-        {
-        _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Up" );
-        if ( eventInRect )
-            {
-            NotifyObserverL();
-            }
-        
-        // Start fading away
-        if ( iInternalFlags.IsClear( EDismissed ) )
-            {
-            iInternalFlags.Set( EDismissed );
-            RequestExitL();
-            }
-
-        SetPressedDownState( EFalse );
-        }
     }
 
--- a/uifw/AvKon/src/aknenv.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/aknenv.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -41,7 +41,7 @@
 #include <CdlEngine.h>
 #include <CdlRefs.h>
 #include <AknLayout2DataDef.h>
-#include <LayoutPack.cdl.h>
+#include <layoutpack.cdl.h>
 #include <CdlExplorer.h>
 #include <aknlayout.cdl.h>
 #include <aknapaclayout.cdl.h>
--- a/uifw/AvKon/src/akngridview.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/akngridview.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -1927,22 +1927,30 @@
 		{
 		blankRect.SetRect(ItemPos(i), ItemSize());
 		blankRect.Intersection(iViewRect);
-
-		MAknsSkinInstance *skin = AknsUtils::SkinInstance();
-		CFormattedCellListBoxItemDrawer *id = (CFormattedCellListBoxItemDrawer*)ItemDrawer();
-		if (id->FormattedCellData()->Control())
-			{
-			MAknsControlContext *cc = AknsDrawUtils::ControlContext( id->FormattedCellData()->Control() );
-			if ( !cc )
-			    {
-			    cc = id->FormattedCellData()->SkinBackgroundContext();
-			    }
-			AknsDrawUtils::Background( skin, cc, id->FormattedCellData()->Control(), *iGc, blankRect );
-			}
-		else
-			{
-			iGc->Clear(blankRect);
-			}
+		if ( blankRect.Width() > 0 && blankRect.Height() > 0 )
+		    {
+		    MAknsSkinInstance *skin = AknsUtils::SkinInstance();
+		    CFormattedCellListBoxItemDrawer *id = 
+                (CFormattedCellListBoxItemDrawer*)ItemDrawer();
+		    if ( id->FormattedCellData()->Control())
+		    	{
+		        MAknsControlContext *cc = 
+                    AknsDrawUtils::ControlContext( id->FormattedCellData()->Control() );
+		        if ( !cc )
+		        	{
+		            cc = id->FormattedCellData()->SkinBackgroundContext();
+		        	}
+		        AknsDrawUtils::Background( skin, 
+                                           cc, 
+                                           id->FormattedCellData()->Control(), 
+                                           *iGc, 
+                                           blankRect );
+		    	}
+		    else
+		    	{
+		        iGc->Clear(blankRect);
+		    	}
+		   	}
 		}
 	_AKNTRACE_FUNC_EXIT;
 	}
--- a/uifw/AvKon/src/aknindicator.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/aknindicator.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -279,9 +279,11 @@
     if ( iState == EAknIndicatorStateOn )
         {
         iAnimState = iCountOfAnimStates - 1;
+        this->MakeVisible(ETrue);
         }
     else if ( iState == EAknIndicatorStateOff )
         {
+        this->MakeVisible(EFalse);
         DeleteBitmaps();
         }
     SizeChanged();
--- a/uifw/AvKon/src/aknindicatorpopupcontent.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/aknindicatorpopupcontent.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007,2008 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"
@@ -1100,12 +1100,12 @@
     {
     iClock = CAknDigitalClock::NewL( this );
     TAknTextLineLayout clockLayout(
-        AknLayoutScalable_Avkon::uniindi_top_pane_t1( 1 ).LayoutLine() );
+        AknLayoutScalable_Avkon::uniindi_top_pane_t1( 0 ).LayoutLine() );
 
     // Ensure that the left and right values of the clock text layout
     // are zero, currently the whole top area is set as the parent
     // for this layout, so it's narrowed by reducting the
-    // signal pane area.
+    // signal and battery pane areas.
     clockLayout.il = 0;
     clockLayout.ir = 0;
     iClock->SetTimeLayout( clockLayout );
--- a/uifw/AvKon/src/aknlists.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/aknlists.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -3371,12 +3371,12 @@
         formattedCellData->SetStretchableTextSubCellL(
             1,
             AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 0 ),
-            AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t1( 0 ) );
+            AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t1( 3 ) );
 
         formattedCellData->SetStretchableTextSubCellL(
             2,
             AknLayoutScalable_Avkon::list_double_graphic_pane_t2( 0 ),
-            AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 0 ) );
+            AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 3 ) );
             
         formattedCellData->SetStretchableGraphicSubCellL(
             3,
@@ -3389,9 +3389,11 @@
             AknLayoutScalable_Avkon::list_double_graphic_pane_vc_g2( 1 ) );
 
         // New icon below g1. 
-        formattedCellData->SetGraphicSubCellL(
+        formattedCellData->SetStretchableGraphicSubCellL(
             5,
-            AknLayoutScalable_Avkon::list_double_graphic_pane_g4( 0 ) );
+            AknLayoutScalable_Avkon::list_double_graphic_pane_g4( 0 ) ,
+            AknLayoutScalable_Avkon::list_double_graphic_pane_vc_g4( 0 ) );
+            
 
         // On default new cell is always drawn but this cell should NOT be drawn!
         formattedCellData->SetNotAlwaysDrawnSubCellL( 5, ETrue );
@@ -3400,12 +3402,12 @@
         formattedCellData->SetStretchableConditionalSubCellL(
             4,
             AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 2 ),
-            AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 2 ), 1, 2 );
+            AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 4 ), 1, 2 );
 
         formattedCellData->SetStretchableConditionalSubCellL(
             3,
             AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 1 ),
-            AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 1 ), 1, 2 );
+            AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 5 ), 1, 2 );
         }
     else
         {
--- a/uifw/AvKon/src/aknnotewrappers.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/aknnotewrappers.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -134,14 +134,17 @@
     {
     if ( AknLayoutUtils::PenEnabled() )
         {
-        if (aPointerEvent.iType == TPointerEvent::EButton1Up)
+        if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
             {
             MTouchFeedback* feedback = MTouchFeedback::Instance();
             if ( feedback )
                 {
                 feedback->InstantFeedback( ETouchFeedbackPopUp );
                 }
-            StaticDeleteL(this);     
+            }
+        if (aPointerEvent.iType == TPointerEvent::EButton1Up)
+            {
+            StaticDeleteL(this);
             }
         }
     }
--- a/uifw/AvKon/src/aknutils.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/aknutils.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -6616,6 +6616,7 @@
     
     color.SetAlpha( !err ? colorFromSkin.Red() : KDefaultSeparatorAlpha );
     aGc.SetPenColor( color );
+    aGc.SetDrawMode( CGraphicsContext::EDrawModePEN );
     TRect lineRect( aRect );
     
     TInt gap = AknLayoutScalable_Avkon::listscroll_gen_pane( 0 ).LayoutLine().it; 
--- a/uifw/AvKon/src/aknview.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/aknview.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -82,7 +82,6 @@
     public:
         TBool iToolbarVisible; 
         TBool iToolbarFocusing; 
-        TBool iViewActivated;
     private: // data
         CAknToolbar* iToolbar;
         CAknToolbar* iFixedToolbar;
@@ -428,6 +427,8 @@
 
 	delete iCba;
 	delete iExtension;
+
+    AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this );
 	}
 
 // -----------------------------------------------------------------------------
@@ -459,10 +460,7 @@
         
     Extension()->CreateToolbarL( iViewInfo.iToolbar );
 
-    if ( iViewInfo.iMenu )
-        {
-        AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this );
-        }
+    AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this );
     }
 
 // -----------------------------------------------------------------------------
@@ -580,31 +578,14 @@
 //
 EXPORT_C void CAknView::AknViewActivatedL( const TVwsViewId& aPrevViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage )
 	{
+    AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this );
 	ConstructMenuAndCbaL( ETrue );
 
-    if ( !iViewInfo.iMenu )
-        {
-        AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this );
-        }
     
 	Extension()->PrepareToolbar();
 
 	DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
 
-    if ( !Extension()->iViewActivated || !iViewInfo.iMenu )
-        {
-        // Reset menu bar owner when view first activated
-        AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( NULL );
-        Extension()->iViewActivated = ETrue;
-        }
-
-#ifdef RD_SCALABLE_UI_V2
-    if ( iAvkonAppUi->TouchPane() )
-        {
-        iAvkonAppUi->TouchPane()->RefreshL();
-        }
-#endif // RD_SCALABLE_UI_V2
-
 	ProcessForegroundEventL( ETrue );
 	}
 
@@ -621,6 +602,8 @@
 
 	DoDeactivate();
 
+	AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this );
+	
 	if ( iCba )
 		{
 		iCba->MakeVisible( EFalse );
--- a/uifw/AvKon/src/eikfrlb.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/eikfrlb.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -512,7 +512,8 @@
 #ifdef RD_LIST_STRETCH
 EXPORT_C void CEikFormattedCellListBox::EnableStretching( const TBool aEnabled )
     {
-    if ( ItemDrawer()->FormattedCellData()->StretchingEnabled() != aEnabled )
+    if ( ItemDrawer() && 
+         ( ItemDrawer()->FormattedCellData()->StretchingEnabled() != aEnabled ) )
         {
         ItemDrawer()->FormattedCellData()->EnableStretching( aEnabled );
         SizeChanged();
--- a/uifw/AvKon/src/eikfrlbd.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/src/eikfrlbd.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -3064,8 +3064,11 @@
     TInt aFirstIndex,
     TInt aSecondIndex )
     {
-    iExtension->iFirstWordWrappedSubcellIndex = (TInt16)aFirstIndex;
-    iExtension->iSecondWordWrappedSubcellIndex = (TInt16)aSecondIndex;
+    if ( iExtension ) 
+        {
+        iExtension->iFirstWordWrappedSubcellIndex = (TInt16)aFirstIndex;
+        iExtension->iSecondWordWrappedSubcellIndex = (TInt16)aSecondIndex;
+        }
     }
 
 EXPORT_C void CFormattedCellListBoxData::EnableMarqueeL(TBool aEnable)
@@ -4128,6 +4131,7 @@
         aGc.UseFont(CEikonEnv::Static()->NormalFont());
         aGc.DrawText(TPtrC(),aRect,0); // use draw text so that don't need to change pen color/style
         aGc.DiscardFont(); // Release the font cache
+        _AKNTRACE_FUNC_EXIT;
         return;
         }
     const CFont* font=SubCellFont(0);
@@ -4377,6 +4381,11 @@
             CGraphicsContext::TTextAlign align=sc->iAlign;
             if (!sc->iGraphics)
                 {
+                if ( !iExtension )
+                    {
+                    _AKNTRACE_FUNC_EXIT;
+                    return;
+                    }
                 const CFont* rowAndCellFont=RowAndSubCellFont(iExtension->iCurrentlyDrawnItemIndex,subcell);
                 const CFont* cellFont=sc->iBaseFont;
                 const CFont* tempFont=(cellFont) ? cellFont : font;
--- a/uifw/AvKon/srcdata/avkon.rss	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/srcdata/avkon.rss	Wed Apr 14 16:14:00 2010 +0300
@@ -8033,7 +8033,7 @@
         // common
         MENU_ITEM { command=EPenInputCmdHwrTraining; txt=qtn_tin_option_menu_training;},
         MENU_ITEM { command=EAknCmdInputLanguage; txt=text_pup_option_input_language;},
-        MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_tin_option_menu_help; }
+        MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_options_help; }
         };
     }
 
@@ -9845,7 +9845,7 @@
 		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=EFepInputCmdHelp; txt=qtn_options_help; },
         MENU_ITEM { command=EAknCmdEditModeEnglish; flags=EEikMenuItemDimmed; txt=qtn_activate_english_mode; }
         };
     }
@@ -9905,7 +9905,7 @@
         MENU_ITEM { command=EAknCmdInputLanguage; flags=EEikMenuItemDimmed; txt=text_pup_option_input_language; },
         MENU_ITEM { command=EAknCmdInputMethod; flags=EEikMenuItemDimmed; txt=text_pup_option_input_language; cascade=r_avkon_input_mode_sub_menu; },
         MENU_ITEM { command=EChinFepCmdModeCangJieOption; flags=EEikMenuItemDimmed; txt=qtn_chi_pup_option_cangjie_mode; },
-        MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_tin_option_menu_help; },
+        MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_options_help; },
         MENU_ITEM { command=EAknCmdEditModeKorean; flags=EEikMenuItemDimmed; txt=qtn_activate_korean_mode; },
         MENU_ITEM { command=EAknCmdEditModeEnglish; flags=EEikMenuItemDimmed; txt=qtn_activate_english_mode; }
         };
--- a/uifw/AvKon/srcdata/smiley.rss	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/srcdata/smiley.rss	Wed Apr 14 16:14:00 2010 +0300
@@ -201,7 +201,7 @@
             {
             code = EAknSmileyIconNerd;
             smileyIconId = EMbmSmileyQgn_indi_smiley_nerd;
-            strings = "8) 8-)";
+            strings = "8-)";
             },
         SMILEY_ICON_ITEM
             {
--- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/group/bctestsingleclick.mmp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/group/bctestsingleclick.mmp	Wed Apr 14 16:14:00 2010 +0300
@@ -48,6 +48,7 @@
 
 USERINCLUDE     ./../inc
 USERINCLUDE     ../../../bctestutil/inc
+USERINCLUDE     ../../../../../../../inc
 
 APP_LAYER_SYSTEMINCLUDE
 
--- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/inc/bctestsingleclickcase.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/inc/bctestsingleclickcase.h	Wed Apr 14 16:14:00 2010 +0300
@@ -28,7 +28,8 @@
 /**
 * test case for various classes
 */
-class CBCTESTSingleClickCase: public CBCTestCase, public MAknCollection
+class CBCTESTSingleClickCase: public CBCTestCase, public MAknCollection, 
+    public MObjectProvider
     {
 public: // constructor and destructor
     
@@ -76,6 +77,12 @@
     virtual TInt CollectionExtension(
             TUint aExtensionId, TAny*& a0, TAny* a1 );	
     
+
+    /** 
+     * Pure virtual from MObjectProvider. 
+     */    
+    virtual TTypeUid::Ptr MopSupplyObject( TTypeUid aId); 
+    
 protected: // new functions
     
     /**
--- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/src/bctestsingleclickcase.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/src/bctestsingleclickcase.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -18,20 +18,14 @@
 #include <w32std.h>
 #include <coecntrl.h>
 #include <aknitemactionmenu.h>
-#ifdef RD_TOUCH2
 #include <aknViewAppUi.h>
 #include <aknview.h>
-#else
-#include <aknappui.h>
-#endif // RD_TOUCH2
 #include <eikmenup.h>
 #include <eikmenub.h>
 #include <avkon.hrh>
 #include <eikfrlb.h>
 #include <bctestsingleclick.rsg>
-#ifdef RD_TOUCH2
-#include <aknitemactionmenuregister.h>
-#endif // RD_TOUCH2
+#include "aknitemactionmenuregister.h"
 
 #include "bctestsingleclickcase.h"
 #include "bctestsingleclickcontainer.h"
@@ -174,30 +168,28 @@
     _LIT( KIsSingleClickCompatible, 
         "CAknAppUiBase::IsSingleClickCompatible()" );    
     _LIT( KRegisterCollectionL, "CAknItemActionMenu::RegisterCollectionL" ); 
+    _LIT( KRegisterCollection2L, 
+            "CAknItemActionMenu::RegisterCollectionL( MAknCollection, MObjectProvider" ); 
     _LIT( KInitMenuL, "CAknItemActionMenu::InitMenuL" ); 
     _LIT( KShowMenuL, "CAknItemActionMenu::ShowMenuL" ); 
     _LIT( KRemoveCollection, "CAknItemActionMenu::RemoveCollection" ); 
     _LIT( KItemSpecificCommandsEnabled, 
          "CEikMenuBar::ItemSpecificCommandsEnabled()" );
     _LIT( KSetItemSpecific, "CEikMenuPane::SetItemSpecific()" );    
-#ifdef RD_TOUCH2    
     _LIT( KSetOverridingMenuBarOwnerL, 
         "AknItemActionMenuRegister::SetOverridingMenuBarOwnerL" );
     _LIT( KCollectionChanged, "CAknItemActionMenu::CollectionChanged" );
-#endif // RD_TOUCH2
 
     //AknItemActionMenuRegister::SetConstructingMenuBarOwnerL is invoked in 
     //CAknView::BaseConstructL().
     AssertTrueL( ETrue, KSetConstructingMenuBarOwnerL );
 
-#ifdef RD_TOUCH2
     CCoeControl* dummy = new ( ELeave ) CCoeControl;
     CleanupStack::PushL( dummy );
     AknItemActionMenuRegister::SetOverridingMenuBarOwnerL( dummy );
     AknItemActionMenuRegister::SetOverridingMenuBarOwnerL( NULL );
     AssertTrueL( ETrue, KSetOverridingMenuBarOwnerL );
     CleanupStack::PopAndDestroy();
-#endif // RD_TOUCH2
     
     TBool isSingleClick = iAvkonAppUiBase->IsSingleClickCompatible();
     AssertTrueL( isSingleClick, KIsSingleClickCompatible );
@@ -205,6 +197,7 @@
     CAknItemActionMenu* aknItemActionMenu = 
         CAknItemActionMenu::RegisterCollectionL( *this );
     AssertTrueL( ETrue, KRegisterCollectionL );
+
     if ( aknItemActionMenu )
         {        
         aknItemActionMenu->InitMenuL();
@@ -214,23 +207,27 @@
         aknItemActionMenu->ShowMenuL( p );
         AssertTrueL( ETrue, KShowMenuL );
         
-#ifdef RD_TOUCH2
         aknItemActionMenu->CollectionChanged( *this );
         AssertTrueL( ETrue, KCollectionChanged );
-#endif // RD_TOUCH2
 
         aknItemActionMenu->RemoveCollection( *this );
         AssertTrueL( ETrue, KRemoveCollection );
         }
+
+    CAknItemActionMenu* aknItemActionMenu2 = 
+        CAknItemActionMenu::RegisterCollectionL( *this, this );
+    AssertTrueL( ETrue, KRegisterCollection2L );
+
+    if ( aknItemActionMenu2 )
+        {
+        aknItemActionMenu2->RemoveCollection( *this );
+        }
+
     
-#ifdef RD_TOUCH2
     TVwsViewId uid;
     
     iAvkonViewAppUi->GetActiveViewId( uid );
     CEikMenuBar* menuBar = iAvkonViewAppUi->View( uid.iViewUid )->MenuBar();
-#else
-    CEikMenuBar* menuBar = CEikonEnv::Static()->AppUiFactory()->MenuBar();
-#endif // RD_TOUCH2
     CEikMenuPane* menuPane = NULL;
     if ( menuBar )
         {
@@ -254,6 +251,7 @@
 void CBCTESTSingleClickCase::TestListBoxL()
     {
     _LIT( KDisableSingleClick, "CEikListBox::DisableSingleClick() invoked" );
+    _LIT( KIsHighlightEnabled, "CEikListBox::IsHighlightEnabled() invoked" );
      
     CEikFormattedCellListBox* listbox = new CEikFormattedCellListBox();
     CleanupStack::PushL( listbox );
@@ -271,8 +269,19 @@
     
     listbox->DisableSingleClick( ETrue );
     AssertTrueL( ETrue, KDisableSingleClick );
-   
+
+    TBool enabled = listbox->IsHighlightEnabled();
+    AssertTrueL( enabled, KIsHighlightEnabled );
+    
     CleanupStack::PopAndDestroy( text );
     CleanupStack::PopAndDestroy( listbox );
     }
 
+// ---------------------------------------------------------------------------
+// CBCTESTSingleClickCase::MopSupplyObject
+// ---------------------------------------------------------------------------
+//    
+TTypeUid::Ptr CBCTESTSingleClickCase::MopSupplyObject(TTypeUid /*aId*/)
+    {
+    return TTypeUid::Null();
+    }
Binary file uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/sis/bctestdomaiwakn.pkg has changed
Binary file uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/sis/bctestdomaiwakn.pkg has changed
--- a/uifw/EikStd/EABI/EIKCOCTLU.DEF	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/EABI/EIKCOCTLU.DEF	Wed Apr 14 16:14:00 2010 +0300
@@ -2009,4 +2009,7 @@
 	_ZN18CEikStatusPaneBase17EnableTransparentEi @ 2008 NONAME
 	_ZNK18CEikStatusPaneBase13IsTransparentEv @ 2009 NONAME
 	_ZN9CEikEdwin23EnableKineticScrollingLEP11CAknPhysics @ 2010 NONAME
+	_ZN18CAknItemActionMenu19RegisterCollectionLER14MAknCollectionP15MObjectProvider @ 2011 NONAME
+	_ZN25AknItemActionMenuRegister30RemoveConstructingMenuBarOwnerEP15MObjectProvider @ 2012 NONAME
+	_ZN11CEikListBox18IsHighlightEnabledEv @ 2013 NONAME
 
--- a/uifw/EikStd/bwins/EIKCOCTLU.DEF	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/bwins/EIKCOCTLU.DEF	Wed Apr 14 16:14:00 2010 +0300
@@ -1620,3 +1620,6 @@
 	?EnableTransparent@CEikStatusPaneBase@@QAEXH@Z @ 1619 NONAME ; void CEikStatusPaneBase::EnableTransparent(int)
 	?IsTransparent@CEikStatusPaneBase@@QBEHXZ @ 1620 NONAME ; int CEikStatusPaneBase::IsTransparent(void) const
 	?EnableKineticScrollingL@CEikEdwin@@QAEXPAVCAknPhysics@@@Z @ 1621 NONAME ; void CEikEdwin::EnableKineticScrollingL(class CAknPhysics *)
+	?RemoveConstructingMenuBarOwner@AknItemActionMenuRegister@@SAXPAVMObjectProvider@@@Z @ 1622 NONAME ; void AknItemActionMenuRegister::RemoveConstructingMenuBarOwner(class MObjectProvider *)
+	?RegisterCollectionL@CAknItemActionMenu@@SAPAV1@AAVMAknCollection@@PAVMObjectProvider@@@Z @ 1623 NONAME ; class CAknItemActionMenu * CAknItemActionMenu::RegisterCollectionL(class MAknCollection &, class MObjectProvider *)
+	?IsHighlightEnabled@CEikListBox@@QAEHXZ @ 1624 NONAME ; int CEikListBox::IsHighlightEnabled(void)
--- a/uifw/EikStd/coctlinc/aknitemactionmenuregister.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlinc/aknitemactionmenuregister.h	Wed Apr 14 16:14:00 2010 +0300
@@ -68,14 +68,26 @@
             MObjectProvider* aMenuBarOwner, TUint aFlags = 0 );
 
     /**
+     * Sets the current constructing menubar owner to NULL if it matches to
+     * aMenuBarOwner. Otherwise constructing menubar owner is not modified.
+     * 
+     * @internal
+     * @param aMenuBarOwner Pointer to constructing menubar owner. 
+     */
+    IMPORT_C static void RemoveConstructingMenuBarOwner( 
+            MObjectProvider* aMenuBarOwner );
+    
+    /**
      * Registers a collection.
      * 
      * @internal
      * @param aCollection Collection to be registered.
+     * @param aMenuBarOwner Owner of the menubar that collection will be
+     *        registered with.
      * @return Item action menu the collection was registered to.
      */
     static CAknItemActionMenu* RegisterCollectionL(
-            MAknCollection& aCollection );
+            MAknCollection& aCollection, MObjectProvider* aMenuBarOwner );
 
     /**
      * Registers item action menu to aMenuBar.
@@ -163,10 +175,12 @@
      * Registers collection.
      * 
      * @param aCollection State to be registered.
+     * @param aMenuBarOwner Owner of the menubar that collection will be
+     *        registered with.
      * @return Item action menu the collection was registered to.
      */
     CAknItemActionMenu* DoRegisterCollectionL(
-            MAknCollection& aCollection );
+            MAknCollection& aCollection, MObjectProvider* aMenuBarOwner );
 
     /**
      * Registers item action menu to aMenuBar.
@@ -286,7 +300,7 @@
      * @internal
      * @return Pointer to menu bar.
      */
-     CEikMenuBar* FindCurrentMenuBarL();
+    CEikMenuBar* FindCurrentMenuBar();
 
     /**
      * Adds register entry.
@@ -319,6 +333,16 @@
      */
     void DoSetConstructingMenuBarOwnerL( MObjectProvider* aMenuBarOwner ); 
 
+    /**
+     * Sets the current constructing menubar owner to NULL if it matches to
+     * aMenuBarOwner. Otherwise constructing menubar owner is not modified.
+     * 
+     * @internal
+     * @param aMenuBarOwner Pointer to constructing menubar owner. 
+     */
+    void DoRemoveConstructingMenuBarOwner( 
+            MObjectProvider* aMenuBarOwner );
+
 private: // data
 
     /**
--- a/uifw/EikStd/coctlsrc/AknButton.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknButton.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -264,7 +264,7 @@
 
     // Sets bitmaps to resource provider (if one exists)
     void SetProviderPressedBmpsL();
-
+   
 private: // Data
 
     CAknButton& iButton;
@@ -284,6 +284,9 @@
     CFbsBitmap* iPressedDownBmp;
     CFbsBitmap* iPressedDownBmpMask;
     CAknResourceProvider* iResourceProvider;
+    
+    //Previous touch down or drag position, valid only with pressed state. 
+    TPoint iPrePointerPos;
     };
 
 // ============================ MEMBER FUNCTIONS ===============================
@@ -1976,6 +1979,10 @@
                 {
                 // show press changes
                 iButtonPressed = ETrue;
+                if ( iExtension )
+                    {
+                    iExtension->iPrePointerPos.SetXY( -1, -1 );
+                    }
                 if ( NeedsRedrawWhenPressed() )
                     {
                     DrawNow();
@@ -2085,7 +2092,11 @@
             }
 
         CAknButtonState* state = State();
-        if ( !aVisible && state && state->HasHelp() )
+        if ( !aVisible && iButtonPressed )
+            {
+            ResetState();
+            }
+        else if ( !aVisible && state && state->HasHelp() )
             {
             HideHelp();
             }
@@ -2134,6 +2145,11 @@
 //
 EXPORT_C void CAknButton::SizeChanged()
     {
+    //Reset state if observer modified the rectangel.
+    if ( iButtonPressed && iExtension && !Rect().Contains( iExtension->iPrePointerPos ) )
+        {
+        ResetState();               
+        }
     // If default icon size from LAF is used re-request that, otherwise trust
     // that size will be updated by the utilising application.
     if ( iExtension->iFlags.IsSet( CAknButtonExtension::EUseDefaultIconSize ) )
@@ -2185,6 +2201,10 @@
                 }
             return;
             }
+        if ( iExtension )
+            {
+            iExtension->iPrePointerPos = aPointerEvent.iPosition;
+            }
         TBool buttonEvent( TouchArea().Contains( aPointerEvent.iPosition ) );
         CAknButtonState* state = State();
         if ( !state )
@@ -2330,6 +2350,10 @@
 
             case TPointerEvent::EButton1Up:
                 {
+                if ( iExtension )
+                    {
+                    iExtension->iPrePointerPos.SetXY( -1, -1 );
+                    }
                 iNumberOfDragEvents = 0;
                 HideHelp();
 
@@ -2459,6 +2483,12 @@
     {
     if ( iExtension ) iExtension->HandleFeedbackAreaChange();
     CAknControl::PositionChanged();
+    
+    //Reset state if observer moved button position.
+    if ( iButtonPressed && iExtension && !Rect().Contains( iExtension->iPrePointerPos ) )
+    	{
+    	ResetState();
+    	}
     }
     
 // -----------------------------------------------------------------------------
--- a/uifw/EikStd/coctlsrc/AknToolbar.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknToolbar.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -1136,7 +1136,10 @@
                             MTouchFeedback* feedback = MTouchFeedback::Instance();
                             if ( feedback )
                                 {
-                                feedback->InstantFeedback( ETouchFeedbackBasicButton );
+                                feedback->InstantFeedback( button,
+                                                           ETouchFeedbackBasicButton,
+                                                           ETouchFeedbackVibra,
+                                                           aPointerEvent );
                                 }
                             }
                 
@@ -2044,8 +2047,11 @@
 
     CWindowGc& gc = SystemGc();
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    // Draw background         
-    if ( iFlags & KAknToolbarFixed && 
+    
+    //
+    // Draw background
+    //
+    if ( iFlags & KAknToolbarFixed && !( iFlags & KAknToolbarNoBackground ) &&
          iBgRect.Height() > 0 &&
          iBgRect.Width() > 0 )
         {
@@ -3114,14 +3120,6 @@
 
             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
--- a/uifw/EikStd/coctlsrc/EIKEDWIN.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKEDWIN.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -520,6 +520,9 @@
     TBool paragraphContainingStartPositionOfInlineTextHasChangedFormat=EFalse;
     TInt numberOfCharactersSuccessfullyDeleted=0;
     TInt numberOfCharactersSuccessfullyInserted=0;
+    
+    iEdwin.ConvertSmileyForDeleteL( selection );
+    
     // handle extended highlights
 
 /* 
@@ -633,23 +636,9 @@
 
 void CEikEdwinFepSupport::SetCursorSelectionForFepL(const TCursorSelection& aCursorSelection)
     {
-    TInt cursorPos( aCursorSelection.iCursorPos );
-    TInt anchorPos( aCursorSelection.iAnchorPos );
-    if ( iEdwin.IsSmileyEnabled() )
-        {  
-        CSmileyManager* smiley( iEdwin.iEdwinExtension->iSmiley );
-        TInt oldPos = ( cursorPos == anchorPos ) ? iEdwin.CursorPos() : anchorPos; 
-        smiley->HandleSetCursor( oldPos, cursorPos );       
-        if ( aCursorSelection.iCursorPos == aCursorSelection.iAnchorPos )
-            {
-            anchorPos = cursorPos;
-            }
-        else
-            {
-            smiley->HandleSetCursor( cursorPos, anchorPos );
-            }
-        }
-	iEdwin.SetSelectionL( cursorPos, anchorPos );
+    TCursorSelection select( aCursorSelection.iCursorPos, aCursorSelection.iAnchorPos );
+    iEdwin.HandleSelectionForSmiley( select );
+    iEdwin.iTextView->SetSelectionL( select );
     iEdwin.ReportEdwinEventL(MEikEdwinObserver::EEventNavigation);
     }
 
@@ -2501,6 +2490,17 @@
         return;
         }
     
+    // If text selection is not visible, don't allow user to select any text
+    // or scroll during selection ( if kinetic scrolling enabled ).
+    if ( kineticScrollingEnabled && iEdwinFepSupport )
+        {
+        CAknEdwinState* edwinState( EditorState() );
+        if ( edwinState && !( edwinState->Flags() & EAknEditorFlagSelectionVisible ) )
+            {
+            return;
+            }
+        }
+    
     const TCursorSelection selection( iTextView->Selection() );
     const TPoint pointerPos( aPointerEvent.iPosition );
     
@@ -2676,7 +2676,7 @@
             iEdwinInternalFlags&=(~ELeftDownInViewRect);
 
             // We can't open cut-copy-paste menu if dragging started
-            if ( IsReadOnly() && IsSelectionVisible() && !( kineticScrollingEnabled
+            if ( IsReadOnly() && IsSelectionVisible() && !( iEdwinUserFlags&ENoAutoSelection ) && !( kineticScrollingEnabled
                 && iEdwinExtension->iPhysicsHandler->DraggingStarted() ) )
                 {
                 iEdwinFepSupport->iFeedback->InstantFeedback(
--- a/uifw/EikStd/coctlsrc/EIKLBV.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLBV.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -815,6 +815,11 @@
 	        }
 	    else // items will get redrawn anyway
 	        {
+            // As the iVerticalOffset is changed in CalcNewTopItemIndexSoItemIsVisible(),
+            // and ScrollToMakeItemVisible() will call the CalcNewTopItemIndexSoItemIsVisible() again,
+            // which will use iVerticalOffset to do some judgementes,
+            // we must set iVerticalOffset back to original value.
+            iVerticalOffset = oldVerticalOffset;
 	        ScrollToMakeItemVisible(iCurrentItemIndex);
 	        }
         UpdateSelectionL(aSelectionMode);
@@ -1187,6 +1192,12 @@
 		newTopItemIndex = aItemIndex;
 	else if (aItemIndex > iBottomItemIndex)
 		newTopItemIndex = aItemIndex - numItemsThatFitInRect + 1;
+    else if ( ( iVerticalOffset < 0 )
+            && ( aItemIndex == iBottomItemIndex )
+            && ( 0 == iViewRect.Height() % iItemHeight ) )
+        {
+        newTopItemIndex += 1;
+        }
 
 	if (!ITEM_EXISTS_ONCE(newTopItemIndex) && newTopItemIndex != 0 )
 		{ // if application fails to call HandleItemAdditionL(), we might go here.
--- a/uifw/EikStd/coctlsrc/EIKLBX.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLBX.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -852,7 +852,7 @@
     iItemsInSingleLine = 1;
     iFeedback = MTouchFeedback::Instance();
 
-    iItemActionMenu = CAknItemActionMenu::RegisterCollectionL( *this );
+    iItemActionMenu = CAknItemActionMenu::RegisterCollectionL( *this, &iListBox );
 
     if ( !( iListBox.iListBoxFlags & CEikListBox::EDisableItemSpecificMenu )
             && iItemActionMenu )
@@ -1079,9 +1079,12 @@
     {
     if ( iSingleClickEnabled && iLongTapDetector && iItemActionMenu  )
         {
-        // Send event on down only if item specific items were found
-        if ( aPointerEvent.iType != TPointerEvent::EButton1Down
-                || iItemActionMenu->InitMenuL() )
+        // Send event on down only if item specific items were found and current
+        // item is marked if there are marked items
+        if ( !( MarkedItems() && 
+                !iListBox.View()->ItemIsSelected( iListBox.CurrentItemIndex() ) )
+                && ( aPointerEvent.iType != TPointerEvent::EButton1Down
+                || iItemActionMenu->InitMenuL() ) )
             {
             iLongTapDetector->PointerEventL ( aPointerEvent );
             }
@@ -1721,8 +1724,9 @@
     {
     _AKNTRACE_FUNC_ENTER;
     TBool enabled( EFalse );
-    if ( ( iListBox.iItemDrawer->Flags() & CListItemDrawer::EPressedDownState ) &&
-         !iFlickStopped )
+    
+    if ( ( iListBox.iItemDrawer->Flags() & CListItemDrawer::EPressedDownState
+        || iSingleClickEnabled ) && !iFlickStopped )
         {
         enabled = ETrue;
         }
@@ -4686,9 +4690,10 @@
             }
 
         iListBoxExt->iFeedbackType = ETouchFeedbackList;
-
-        if ( itemIndex != iView->CurrentItemIndex() ||
-             iListBoxFlags & ES60StyleMultiselection )
+        
+        if ( iListBoxFlags & ES60StyleMultiselection ||
+            ( !iListBoxExt->iSingleClickEnabled &&
+            itemIndex != iView->CurrentItemIndex() ) )
             {
             iListBoxExt->iFeedbackType = ETouchFeedbackSensitiveList;
             }
@@ -4832,14 +4837,13 @@
                             UpdateHighlightL( itemIndex );
                             CCoeEnv::Static()->WsSession().Finish();
                             }
-                        if ( itemIndex != oldCurrentItemIndex )
-                            {
-                        	iListBoxExt->ImmediateFeedback( 
-                                iListBoxExt->iFeedbackType,
-                                TTouchFeedbackType( ETouchFeedbackVibra | 
-                                ETouchFeedbackAudio ),
-                                aPointerEvent );
-                        	}
+
+                        iListBoxExt->ImmediateFeedback( 
+                            iListBoxExt->iFeedbackType,
+                            TTouchFeedbackType( ETouchFeedbackVibra | 
+                            ETouchFeedbackAudio ),
+                            aPointerEvent );
+
                         if ( !wasFlicking )
                             {
                             ReportListBoxEventL( 
@@ -6217,12 +6221,37 @@
 //
 EXPORT_C void CEikListBox::DisableItemSpecificMenu()
     {
+    _AKNTRACE_FUNC_ENTER;
     if ( iListBoxExt )
         {
         iListBoxExt->DisableItemSpecificMenu();
         }
-    }
-
+    _AKNTRACE_FUNC_EXIT;
+    }
+
+// ---------------------------------------------------------------------------
+// CEikListBox::IsHighlightEnabled
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CEikListBox::IsHighlightEnabled()
+    {
+    _AKNTRACE_FUNC_ENTER;
+    TBool enabled( EFalse ); 
+    if ( !( iItemDrawer->Flags() & CListItemDrawer::EDisableHighlight ) )
+        {
+        if ( iListBoxExt->iSingleClickEnabled )
+            {
+            enabled = !( iItemDrawer->Flags()
+                & CListItemDrawer::ESingleClickDisabledHighlight ); 
+            }
+        else 
+            {
+            enabled = ETrue;
+            }
+        }
+    _AKNTRACE_FUNC_EXIT;
+    return enabled; 
+    }
 
 void CEikListBox::ScrollView( const TInt aOffset, TBool aDrawNow )
 	{
--- a/uifw/EikStd/coctlsrc/EIKMENUB.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKMENUB.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -153,10 +153,11 @@
         AknItemActionMenuRegister::RegisterMenuBarL( *iBar );
         }
     // hide item-specific commands if highlight not visible 
-    if ( iBar->GetMenuType() != CEikMenuBar::EMenuContext
-            && iItemActionMenu
-            && !iItemActionMenu->CollectionHighlightVisible() )
-        {
+    if ( iBar->GetMenuType() != CEikMenuBar::EMenuContext 
+            && ( ( iItemActionMenu 
+            && !iItemActionMenu->CollectionHighlightVisible() ) 
+            || !iItemActionMenu ) ) 
+        {  
         iBar->iMenuPane->SetItemCommandsDimmed();
         }
     }
@@ -1004,7 +1005,7 @@
             TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
             if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
                 {
-                fbLogicalType = ETouchFeedbackIncreasingPopUp;
+                fbLogicalType = ETouchFeedbackOptionsMenuOpened;
                 }
             feedback->InstantFeedback(
                                    this,
@@ -1194,7 +1195,7 @@
                     TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
                     if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
                         {
-                        fbLogicalType = ETouchFeedbackDecreasingPopUp;
+                        fbLogicalType = ETouchFeedbackOptionsMenuClosed;
                         }
                     feedback->InstantFeedback(
                                            this,
--- a/uifw/EikStd/coctlsrc/EIKMENUP.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKMENUP.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -2263,7 +2263,7 @@
     TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
     if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
         {
-        fbLogicalType = ETouchFeedbackIncreasingPopUp;
+        fbLogicalType = ETouchFeedbackSubMenuOpened;
         }
     iExtension->ImmediateFeedback( fbLogicalType,
                                        ETouchFeedbackVibra );
@@ -3839,7 +3839,7 @@
             {
             if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
                 {
-                iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
+                iExtension->ImmediateFeedback( ETouchFeedbackSubMenuClosed );
                 }
             else
                 {
@@ -4192,7 +4192,7 @@
                         {
                         if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
                             {
-                            iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
+                            iExtension->ImmediateFeedback( ETouchFeedbackSubMenuClosed );
                             }
                         else
                             {
@@ -4314,7 +4314,7 @@
                         {
                         if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
                             {
-                            iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
+                            iExtension->ImmediateFeedback( ETouchFeedbackSubMenuClosed );
                             }
                         else
                             {
@@ -4424,7 +4424,7 @@
                                         AknTransEffect::EComponentTransitionsOff ) )
                                     {
                                     iExtension->ImmediateFeedback(
-                                            ETouchFeedbackDecreasingPopUp );
+                                            ETouchFeedbackSubMenuClosed );
                                     }
                                 else
                                     {
@@ -5354,7 +5354,7 @@
             UpdateBackgroundContext( Rect() );
             PrepareHighlightFrame();
             SetCascadedIconSize();
-          
+            DrawDeferred();
             if ( iCascadeMenuPane )
                 {
                 iCascadeMenuPane->HandleResourceChange( aType );
--- a/uifw/EikStd/coctlsrc/EIKSCRLB.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKSCRLB.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -41,7 +41,7 @@
 #include "eikscrlb.h"
 #include "EIKSBEXT.H"
 
-const TInt KIntensity = 50; // 50%
+const TInt KIntensity = 100; // 100%
 
 const TInt KScrollBarWidth=9;
 // const TInt KScrollButtonHeight=10;
@@ -830,7 +830,7 @@
     if ( modifier )
         {
         CAknDoubleSpanScrollBarExtension* extension = static_cast<CAknDoubleSpanScrollBarExtension*> (iExtension);
-        if ( aVisible  && (extension->iScrollIndicator->ScrollSpan() > 0) )
+        if ( aVisible  && (extension->iScrollIndicator->ScrollSpan() > 0)  && !( extension->iExtensionType & ENoExpandedTouchArea ) )
             {
             modifier->Push( *this, ExtensionArea() );
             }
@@ -897,10 +897,21 @@
     {
     CAknPointerEventModifier* modifier = iAvkonAppUiBase ? iAvkonAppUiBase->PointerEventModifier() : NULL;
     
-    if ( modifier && IsVisible() )
-        {
-        modifier->Update( *this, ExtensionArea() );
-        }
+    if (iExtension)
+            {
+            CAknDoubleSpanScrollBarExtension* extension = static_cast<CAknDoubleSpanScrollBarExtension*> (iExtension);          
+			if ( modifier && IsVisible() && !( extension->iExtensionType & ENoExpandedTouchArea ) )
+				{
+				modifier->Update( *this, ExtensionArea() );
+				}
+          }
+    else
+    	{
+		if ( modifier && IsVisible()  )
+			{
+			modifier->Update( *this, ExtensionArea() );
+			}
+    	}
 
     AknsUtils::RegisterControlPosition( this );
     if (iExtension)
@@ -1304,7 +1315,7 @@
                             feedback->StartFeedback( this, 
                                                      ETouchContinuousSlider, 
                                                      &aPointerEvent, 
-                                                     KIntensity, // intensity 50%
+                                                     KIntensity, // intensity 100%
                                                      timeout );
                             }
                         extension->SetModelThumbPosition(thumbPosition);
--- a/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -99,7 +99,22 @@
     {
     _AKNTRACE_FUNC_ENTER;
     _AKNTRACE_FUNC_EXIT;
-    return AknItemActionMenuRegister::RegisterCollectionL( aCollection );
+    return AknItemActionMenuRegister::RegisterCollectionL(
+            aCollection, NULL );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknItemActionMenu::RegisterCollectionL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CAknItemActionMenu* CAknItemActionMenu::RegisterCollectionL(
+        MAknCollection& aCollection, MObjectProvider* aMenuBarOwner )
+    {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
+    return AknItemActionMenuRegister::RegisterCollectionL( 
+            aCollection, aMenuBarOwner );
     }
 
 
--- a/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -71,11 +71,34 @@
 
 
 // ---------------------------------------------------------------------------
+// AknItemActionMenuRegister::RemoveConstructingMenuBarOwner
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( 
+        MObjectProvider* aMenuBarOwner )
+    {
+    _AKNTRACE_FUNC_ENTER;
+
+    if ( AppUiSingleClickCompatible() )
+        {
+        AknItemActionMenuRegister* instance( Instance() );
+
+        if ( instance )
+            {
+            instance->DoRemoveConstructingMenuBarOwner( aMenuBarOwner );
+            }
+        }
+
+    _AKNTRACE_FUNC_EXIT;
+    }
+
+
+// ---------------------------------------------------------------------------
 // AknItemActionMenuRegister::RegisterCollectionL
 // ---------------------------------------------------------------------------
 //
 CAknItemActionMenu* AknItemActionMenuRegister::RegisterCollectionL(
-        MAknCollection& aCollectionState )
+        MAknCollection& aCollectionState, MObjectProvider* aMenuBarOwner )
     {
     _AKNTRACE_FUNC_ENTER;
 
@@ -85,7 +108,8 @@
         AknItemActionMenuRegister* instance( Instance() );
         if ( instance )
             {
-            menu = instance->DoRegisterCollectionL( aCollectionState );
+            menu = instance->DoRegisterCollectionL( 
+                    aCollectionState, aMenuBarOwner );
             }
         }
 
@@ -320,12 +344,22 @@
 // ---------------------------------------------------------------------------
 //
 CAknItemActionMenu* AknItemActionMenuRegister::DoRegisterCollectionL(
-        MAknCollection& aCollectionState )
+        MAknCollection& aCollectionState, MObjectProvider* aMenuBarOwner )
     {
     _AKNTRACE_FUNC_ENTER;
     
     CAknItemActionMenu* menu( NULL );
-    CEikMenuBar* menuBar = FindCurrentMenuBarL();
+    CEikMenuBar* menuBar = NULL;
+    
+    if ( aMenuBarOwner )
+        {
+        aMenuBarOwner->MopGetObject( menuBar );
+        }
+
+    if ( !menuBar )
+        {
+        menuBar = FindCurrentMenuBar();
+        }
     menu = RegisterStateToItemActionMenuL( menuBar, aCollectionState );
 
     _AKNTRACE_FUNC_EXIT;
@@ -448,7 +482,7 @@
     {
     _AKNTRACE_FUNC_ENTER;
 
-    CEikMenuBar* menuBar = FindCurrentMenuBarL();
+    CEikMenuBar* menuBar = FindCurrentMenuBar();
     if ( !menuBar || !iRegisterArray->RegisterCollectionObserverL(
             *menuBar, aObserver ) )
         {
@@ -751,16 +785,15 @@
 
 
 // ---------------------------------------------------------------------------
-// AknItemActionMenuRegister::FindCurrentMenuBarL
+// AknItemActionMenuRegister::FindCurrentMenuBar
 // ---------------------------------------------------------------------------
 //
-CEikMenuBar* AknItemActionMenuRegister::FindCurrentMenuBarL()
+CEikMenuBar* AknItemActionMenuRegister::FindCurrentMenuBar()
     {
     _AKNTRACE_FUNC_ENTER;
 
     CAknAppUi* appUi = AppUI();
     CEikonEnv* eikonEnv( CEikonEnv::Static() );
-    TBool isConstructingDialog( EFalse );
     CEikMenuBar* menuBar( NULL );
     
     // If overriding menubar owner is set then it's the one to obey. If the
@@ -771,34 +804,23 @@
         _AKNTRACE_FUNC_EXIT;
         return OverridingObjectMenuBar();
         }
-    
-    // Check if there is existing constructing dialog
+
+    // by default choose the current constructing menubar owner
     if ( iMenuBarOwner )
         {
-        CEikDialog* dialog( NULL );
-        iMenuBarOwner->MopGetObjectNoChaining( dialog );
-        if ( dialog )
-            {
-            isConstructingDialog = ETrue;
-            }
+        menuBar = ConstructingObjectMenuBar();
         }
-    // No constructing dialog
-    if ( !isConstructingDialog )
+    else
         {
         // Fetch pointer to dialog that is currently displayed
         menuBar = DialogMenuBar( appUi );
+
         // No dialog - pointer to active view menu bar
         if ( !menuBar )
             {
             menuBar = ViewMenuBar( appUi );
             }
         }
-    
-    // Fetch pointer to constructing object menu bar
-    if ( !menuBar )
-        {
-        menuBar = ConstructingObjectMenuBar();
-        }
 
     // Finally, if no luck with others, fetch pointer to appUi menu bar.
     if ( !menuBar && eikonEnv )
@@ -901,31 +923,67 @@
             iIsConstructingDialog = ETrue; 
             }
         }
-    else if ( !aMenuBarOwner && iIsConstructingDialog )
+    
+    iMenuBarOwner = aMenuBarOwner;
+    }
+
+
+// ---------------------------------------------------------------------------
+// AknItemActionMenuRegister::DoRemoveConstructingMenuBarOwner
+// ---------------------------------------------------------------------------
+//
+void AknItemActionMenuRegister::DoRemoveConstructingMenuBarOwner( 
+        MObjectProvider* aMenuBarOwner )
+    {
+    TInt i = 0;
+    
+    // set all references to removed menubar owner to NULL
+    while ( i  < iUnregisteredMenus.Count() )
         {
-        // 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 ) 
             {
-            TAknUnregisteredMenuData& data( iUnregisteredMenus[ i ] );
-            if ( data.iOwner == iMenuBarOwner ) 
+            data.iOwner = iMenuBarOwner = NULL;
+            
+            // 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.
+            if ( iIsConstructingDialog )
                 {
-                data.iOwner = iMenuBarOwner = NULL; 
-                CEikMenuBar* menuBar = FindCurrentMenuBarL(); 
+                CEikMenuBar* menuBar = FindCurrentMenuBar(); 
+
                 if ( menuBar )
                     {
-                    AddRegisterEntryL( *menuBar, *data.iMenu );
+                    TRAP_IGNORE( AddRegisterEntryL( *menuBar, *data.iMenu ) );
                     iUnregisteredMenus.Remove( i );
+                    continue;
                     }
-                iIsConstructingDialog = EFalse; 
-                return; 
                 }
             }
+        
+        ++i;
         }
-    iMenuBarOwner = aMenuBarOwner;
+    
+    // NULL also possible references in unregistered observers
+    for ( i = 0; i < iUnregisteredObservers.Count(); ++i )
+        {
+        TAknUnregisteredObserverData& data( iUnregisteredObservers[i] );
+        
+        if ( data.iOwner == aMenuBarOwner )
+            {
+            data.iOwner = NULL;
+            }
+        }
+    
+    if ( iMenuBarOwner == aMenuBarOwner )
+        {
+        iIsConstructingDialog = EFalse; 
+        iMenuBarOwner = NULL;
+        }
     }
 
+
 // ---------------------------------------------------------------------------
 // AknItemActionMenuRegister::TAknUnregisteredObserverData
 // ::TAknUnregisteredObserverData
--- a/uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -170,6 +170,10 @@
         iItems[i]->Control()->ActivateL(); 
         }
     SetComponentsToInheritVisibility( ETrue );
+    
+#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
+    GfxTransEffect::Register( this, KGfxTransEffectToolbarExtensionControlUid);
+#endif
     }
 
 // ---------------------------------------------------------------------------
@@ -183,13 +187,7 @@
 
     if ( aVisible && !isVisible )
         {
-            // the toolbar extension is shown, this happens only with pointer event? 
-            MTouchFeedback* feedback = MTouchFeedback::Instance();
-            if ( feedback )
-                {
-                feedback->InstantFeedback( ETouchFeedbackPopUp );
-                }
-
+        // the toolbar extension is shown, this happens only with pointer event? 
         TRect rect; 
         TRAP_IGNORE( rect = CalculateSizeL() ); 
         CEikonEnv::Static()->EikAppUi()->UpdateStackedControlFlags( this, 
@@ -529,12 +527,6 @@
         if ( !Rect().Contains( aPointerEvent.iPosition) && iIsDownOutside )
             {
             // tapped outside view, 
-            MTouchFeedback* feedback = MTouchFeedback::Instance();
-            if ( feedback )
-                {
-                feedback->InstantFeedback( ETouchFeedbackPopUp );
-                }
-
             MakeVisible( EFalse ); 
             // Close extension view and let also extension know about it
             // so it can change state
@@ -887,9 +879,6 @@
     iSelectedItem( KNoItemSelected ), iNumberOfColumns( 1 ),
     iIsDownOutside( EFalse )
     {
-#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
-    GfxTransEffect::Register( this, KGfxTransEffectToolbarExtensionControlUid);
-#endif
     }
 
 
--- a/uifw/EikStd/coctlsrc/eikcba.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/eikcba.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -1772,7 +1772,7 @@
     TRect rect;
     qgn_graf_sk_msk.LayoutRect(
         rect,
-        AknLayoutScalable_Avkon::control_pane_g4( 0 ).LayoutLine() );
+        AknLayoutScalable_Avkon::control_pane_g4( 1 ).LayoutLine() );
 
     TSize iconSize( qgn_graf_sk_msk.Rect().Width(),
                     qgn_graf_sk_msk.Rect().Height() );
--- a/uifw/EikStd/coctlsrc/smileymanager.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/coctlsrc/smileymanager.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -179,11 +179,14 @@
         if ( image && aRect.Size() != image->BitmapSize() )
             {
             image->SetBitmapSize( aRect.Size() );
-            if ( icon->IsPlayFinished() )
+            for ( TInt i( 0 ); i < image->RefArrayCount(); i++ )
                 {
-                icon->PlayOneTime();
-                iDrawer->CreateImageL( image );
+                if ( image->RefIcon( i )->IsPlayFinished() )
+                    {
+                    image->RefIcon( i )->PlayOneTime();
+                    }
                 }
+            iDrawer->CreateImageL( image );            
             }
         else if ( !image )
             {
--- a/uifw/EikStd/dlgsrc/EIKDIALG.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKDIALG.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -237,7 +237,7 @@
 	_AKNTRACE_FUNC_ENTER;
     AKNTASHOOK_REMOVE();
 
-    AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( NULL );
+    AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this );
 
     EnableContentObserver( EFalse );
 
@@ -1933,47 +1933,8 @@
         return;
         }
 
-    TBool needToCheckExit = ETrue;
-    
-    if (aButtonId != EEikBidCancel)
-        {
-        PrepareForFocusTransitionL();
-        }
-    else if (!(iDialogFlags & EEikDialogFlagNotifyEsc))
-        {
-        needToCheckExit = EFalse;
-        }
+    TBool effectTriggered = EFalse;
     
-    if (needToCheckExit)
-        {
-        if (!OkToExitL(aButtonId))
-            {
-            _AKNTRACE("CEikDialog::TryExitL return with OkToExitL false");
-            return;
-            }
-        
-        if (aButtonId != EEikBidCancel)
-            {
-            GetAutoValues();
-            }
-        }
-
-    if (iExitConfirmed)
-        {
-        *iExitConfirmed = (MappedCommandId(aButtonId) == EEikBidCancel) ? 0 : aButtonId;
-        }
-    // Remove content observer in order to prevent unnecessary layout 
-    // calculations in dialog shutdown.
-    EnableContentObserver(EFalse);
-
-    if (iDialogFlags & EEikDialogFlagSleeping)
-        {
-        ExitSleepingDialog();
-        }
-    else
-        {
-        // Trigger the transition effects for the exiting dialog.
-        CAknAppUi* aknAppUi = static_cast<CAknAppUi*>(iEikonEnv->EikAppUi());
         TBool effectButton = aButtonId == EEikBidCancel
                           || aButtonId == EAknSoftkeyExit
                           || aButtonId == EAknSoftkeyBack
@@ -1981,27 +1942,79 @@
 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
         effectButton =    effectButton
                           || aButtonId == EAknSoftkeyClose
-                          || aButtonId == EAknSoftkeyDone;
+                          || aButtonId == EAknSoftkeyDone
+                          || aButtonId == EAknSoftkeyOk;
+#endif
+    CAknAppUi* aknAppUi = static_cast<CAknAppUi*>( iEikonEnv->EikAppUi() );
+        if (GfxTransEffect::IsRegistered(this) && IsVisible() && effectButton
+#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS        
+        && !(iDialogFlags&EEikDialogFlagSleeping)
 #endif
-
-        if (GfxTransEffect::IsRegistered(this) && IsVisible() && effectButton
             && (!aknAppUi->IsFullScreenApp() || aknAppUi->IsForeground())
-            && !IsBlankScreenDisplayed())
+        && !IsBlankScreenDisplayed()
+         )
+            {
+        CAknTransitionUtils::SetAllParents(this);
+        GfxTransEffect::Begin(this, KGfxControlDisappearAction);
+        GfxTransEffect::NotifyExternalState(ECaptureComponentsBegin, (const TDesC8*)this);
+        TRect demarcation;
+        CAknTransitionUtils::GetDemarcation(CAknTransitionUtils::EPopup,
+                                            demarcation);
+        GfxTransEffect::SetDemarcation(this, demarcation);
+        effectTriggered = ETrue;
+        }
+
+    if (aButtonId!=EEikBidCancel)
+        PrepareForFocusTransitionL();
+    else if (!(iDialogFlags&EEikDialogFlagNotifyEsc))
+        goto finished;
+    if (!OkToExitL(aButtonId))
+            {
+        if ( effectTriggered )
             {
-            // Begin transition.
-            TRect demarcation;
-            CAknTransitionUtils::SetAllParents(this);
-            GfxTransEffect::Begin(this, KGfxControlDisappearAction);
-            GfxTransEffect::NotifyExternalState(ECaptureComponentsBegin, (const TDesC8*)this);    
-            CAknTransitionUtils::GetDemarcation(CAknTransitionUtils::EPopup, demarcation);
-            GfxTransEffect::SetDemarcation(this, demarcation);
-            
-            // End transiton.
-            MakeVisible(EFalse);
-            CAknTransitionUtils::MakeVisibleSubComponents(this,
-                                    CAknTransitionUtils::EForceInvisible);
-            GfxTransEffect::NotifyExternalState(ECaptureComponentsEnd, (const TDesC8*)this);
-            GfxTransEffect::End(this);
+            GfxTransEffect::NotifyExternalState( ECaptureComponentsAbort,
+                                                 ( const TDesC8* ) this );
+            GfxTransEffect::Abort( this );
+            }
+            _AKNTRACE_FUNC_EXIT;
+            return;
+            }
+        
+        if (aButtonId != EEikBidCancel)
+        GetAutoValues();
+finished:
+    if (iExitConfirmed)
+        *iExitConfirmed=((MappedCommandId( aButtonId ) ==EEikBidCancel)? 0: aButtonId);
+
+    // Remove content observer in order to prevent unnecessary layout 
+    // calculations in dialog shutdown.
+    EnableContentObserver( EFalse );
+
+    if (iDialogFlags&EEikDialogFlagSleeping)
+        ExitSleepingDialog();
+    else
+        {
+        // Remove content observer in order to prevent unnecessary layout 
+        // calculations in dialog shutdown.
+        EnableContentObserver( EFalse );
+
+        if ( effectTriggered )
+                        {
+                MakeVisible(EFalse);
+                CAknTransitionUtils::MakeVisibleSubComponents( this,
+                                        CAknTransitionUtils::EForceInvisible );
+
+                GfxTransEffect::NotifyExternalState(ECaptureComponentsEnd, (const TDesC8*)this);
+                GfxTransEffect::End(this);
+                }
+            else
+                {
+                MakeVisible(EFalse);
+                CAknTransitionUtils::MakeVisibleSubComponents( this,
+                                        CAknTransitionUtils::EForceInvisible );
+                GfxTransEffect::NotifyExternalState( ECaptureComponentsAbort,
+                                                 ( const TDesC8* ) this );
+                GfxTransEffect::Abort(this);
             }
         delete(this);
         }
--- a/uifw/EikStd/dlgsrc/EIKDPAGE.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKDPAGE.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -3181,18 +3181,29 @@
             upperItem = iLines->Count();
             }
         }
-    if ( iPhysics->OngoingPhysicsAction() != CAknPhysics::EAknPhysicsActionNone )
+    if ( upperItem == -1 || bottomItem == iLines->Count() )
         {
-        if ( upperItem == -1 || bottomItem == iLines->Count() )
+        if ( upperItem != iExtension->iTopItem || bottomItem != iExtension->iBottomItem )
             {
-            if ( upperItem != iExtension->iTopItem || bottomItem != iExtension->iBottomItem )
+            if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionDragging )
+                {
+                iExtension->Feedback( this, ETouchFeedbackSensitiveList );
+                }
+            else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking)
                 {
                 iExtension->SilentFeedback( this, ETouchFeedbackSensitiveList, TPointerEvent() );
                 }
             }
-        else if ( upperItem >= 0 || bottomItem < iLines->Count() )
+        }
+    else if ( upperItem >= 0 || bottomItem < iLines->Count() )
+        {
+        if ( upperItem < iExtension->iTopItem || bottomItem > iExtension->iBottomItem )
             {
-            if ( upperItem < iExtension->iTopItem || bottomItem > iExtension->iBottomItem )
+            if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionDragging )
+                {
+                iExtension->Feedback( this, ETouchFeedbackSensitiveList );
+                }
+            else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking)
                 {
                 iExtension->SilentFeedback( this, ETouchFeedbackSensitiveList, TPointerEvent() );
                 }
--- a/uifw/EikStd/srvuisrc/eikkeysoundserver.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/EikStd/srvuisrc/eikkeysoundserver.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -282,7 +282,7 @@
 void CEikKeySoundServer::Complete(TInt aError, TAudioThemeEvent aEvent)
 	{
 	if( aError != KErrNone && aError != ESilencedError 
-	    && aError != EEventCurrentlyPlaying )
+	    && aError != EEventCurrentlyPlaying && aError != KErrUnderflow)
 		{
 		PlaySid(aEvent, ETrue);
 		}
--- a/uifw/eikctl/src/EIKCLB.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/eikctl/src/EIKCLB.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -481,7 +481,8 @@
 #ifdef RD_LIST_STRETCH
 EXPORT_C void CEikColumnListBox::EnableStretching( const TBool aEnabled )
     {
-    if ( ItemDrawer()->ColumnData()->StretchingEnabled() != aEnabled )
+    if ( ItemDrawer() && 
+         ( ItemDrawer()->ColumnData()->StretchingEnabled() != aEnabled ) )
         {
         ItemDrawer()->ColumnData()->EnableStretching( aEnabled );
         SizeChanged();
--- a/uifw/eikctl/src/EIKCLBD.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/eikctl/src/EIKCLBD.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -1944,8 +1944,11 @@
                                      const TColors& aColors ) const
     {
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );    
-    CListBoxView* view = static_cast<CEikListBox*>( iExtension->iControl )->View();
-    if ( !view->ViewRect().Intersects( aRect ) )
+    
+    __ASSERT_DEBUG( iExtension->iControl, Panic( EEikPanicNullPointer ));
+    
+    CEikListBox* listbox = static_cast<CEikListBox*>( iExtension->iControl );
+    if ( listbox && !listbox->View()->ViewRect().Intersects( aRect ) )
         {
         // outside of the clipping rect -> don't process this item
         return;
@@ -1960,7 +1963,7 @@
 
     MAknsSkinInstance *skin = AknsUtils::SkinInstance();
     MAknsControlContext *cc = AknsDrawUtils::ControlContext( Control() );
-    if (!cc)
+    if ( !cc )
         {
         cc = SkinBackgroundContext();
         }
@@ -1975,7 +1978,6 @@
         CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, aRect );
         }
 
-    CEikListBox* listbox = static_cast<CEikListBox*>( iExtension->iControl );
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
     MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc );
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
@@ -2008,10 +2010,8 @@
             }
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
         }
-
-    CEikListBox* list = static_cast<CEikListBox*>( iExtension->iControl );
-    
-    if ( iExtension->iCurrentRow < list->BottomItemIndex() )
+ 
+    if ( iExtension->iCurrentRow < listbox->BottomItemIndex() )
         {
         AknListUtils::DrawSeparator( aGc, aRect, aColors.iText, skin );
         }
@@ -2027,7 +2027,7 @@
     if ( transApi )
         {
         transApi->StartDrawing( MAknListBoxTfxInternal::EListItem );
-        CListBoxView* view = static_cast<CEikListBox*>( iExtension->iControl )->View();
+        CListBoxView* view = listbox->View();
         aGc.SetClippingRect( view->ViewRect() );
         }
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
@@ -2048,19 +2048,19 @@
             
             TRgb textColor( aTextColor );
             
-            if (aHighlight)
+            if ( aHighlight )
                 {
                 textColor = aColors.iHighlightedText;
                 aGc.SetBrushColor(aColors.iHighlightedBack);    
                 }
-            if (AknsUtils::AvkonSkinEnabled())
+            if ( AknsUtils::AvkonSkinEnabled() )
                 {
-                if (iExtension->iTextColor != NULL)
+                if ( iExtension->iTextColor != NULL )
                     {
                     textColor = iExtension->iTextColor;
                     }
                 
-                if (aHighlight && iExtension->iHighlightedTextColor != NULL)
+                if ( aHighlight && iExtension->iHighlightedTextColor != NULL )
                     {
                     textColor = iExtension->iHighlightedTextColor;
                     }
@@ -2082,7 +2082,7 @@
                 // check if there are icons affecting this text layout
                 TInt gSC = iExtension->AtSL(subCellIndex).iConditionValue; // graphical subcell which might affect this text subcell
                 
-                if (gSC > -1)
+                if ( gSC > -1 )
                     {
                     TInt tempIndex;
                     while (gSC > -1) // when gSC == -1, we have found our graphical subcell
@@ -2098,7 +2098,7 @@
                         }
                     }
                     
-                if (gSC == -1) // no affecting icons -> use default layout
+                if ( gSC == -1 ) // no affecting icons -> use default layout
                     {
                     textLineLayout = iExtension->AtSL(subCellIndex).iTextLayout;
                     }
@@ -2107,7 +2107,7 @@
   
             if( !isLayoutAlignment )
                 { 
-                switch(align) 
+                switch( align ) 
                     {
                     case CGraphicsContext::ELeft : 
                         {
@@ -2165,9 +2165,9 @@
                 }
 
             TBool marqueeDisabled(EFalse);
-            if (listbox != NULL && 
-                listbox->View() != NULL && 
-                listbox->View()->ItemDrawer() != NULL)
+            if ( listbox != NULL && 
+                 listbox->View() != NULL && 
+                 listbox->View()->ItemDrawer() != NULL)
                 {
                 marqueeDisabled = listbox->View()->ItemDrawer()->Flags() & CListItemDrawer::EDisableMarquee;
                 }
@@ -2255,7 +2255,7 @@
                 continue;
                 }
 
-            if (aHighlight && (index > 0xffff))
+            if ( aHighlight && (index > 0xffff) )
                 {
                 index = index >> 16; // we have different icon for highlight
                 }
@@ -2269,7 +2269,7 @@
             graphicRect.LayoutRect(aRect,graphicLayout);
             TSize graphicSize( graphicRect.Rect().Size() );
             
-            if (index>=0 && IconArray())
+            if ( index>=0 && IconArray() )
                 {
                 CGulIcon* icon=(*IconArray())[index];
                 CFbsBitmap* bitmap=icon->Bitmap();
@@ -2278,8 +2278,8 @@
                     {
                     TSize size( bitmap->SizeInPixels() );
                     
-                    if (size.iWidth != graphicSize.iWidth &&
-                        size.iHeight != graphicSize.iHeight )
+                    if ( size.iWidth != graphicSize.iWidth &&
+                         size.iHeight != graphicSize.iHeight )
                         {
                         AknIconUtils::SetSize( bitmap,
                                                graphicSize,
--- a/uifw/eikctl/src/EIKMFNE.CPP	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/eikctl/src/EIKMFNE.CPP	Wed Apr 14 16:14:00 2010 +0300
@@ -3982,18 +3982,24 @@
     return(Date());
     }
 
-EXPORT_C TKeyResponse CEikDateEditor::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
-    {
-    if (iDateEditor->OfferKeyEventL(aKeyEvent, aType)==EKeyWasConsumed)
-        return EKeyWasConsumed;
-    if ( ( aType==EEventKey)&& 
-           ( aKeyEvent.iCode == EKeyLeftArrow || aKeyEvent.iCode == EKeyRightArrow || 
-             aKeyEvent.iCode == EKeyDownArrow || aKeyEvent.iCode == EKeyUpArrow ) )
+EXPORT_C TKeyResponse CEikDateEditor::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
+    {
+	TKeyResponse ret = EKeyWasNotConsumed;
+    if ( iDateEditor->OfferKeyEventL( aKeyEvent, aType ) == EKeyWasConsumed )
+    	{
+        ret = EKeyWasConsumed;
+    	}
+    else 
     	{
-        iDateEditor->UpdateMaxDay( *Font() );
+	    ret = CEikMfne::OfferKeyEventL( aKeyEvent, aType );
+	    if ( ( aType == EEventKey ) && 
+		     ( aKeyEvent.iCode == EKeyDownArrow || aKeyEvent.iCode == EKeyUpArrow ) )
+		    {
+		    iDateEditor->UpdateMaxDay( *Font() );
+		    this->DrawDeferred();
+		    }
     	}
-
-    return CEikMfne::OfferKeyEventL(aKeyEvent, aType);
+    return ret;
     }
 
 EXPORT_C void CEikDateEditor::ConstructFromResourceL(TResourceReader& aResourceReader)
--- a/uifw/ganes/BWINS/ganesu.def	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/ganes/BWINS/ganesu.def	Wed Apr 14 16:14:00 2010 +0300
@@ -113,4 +113,5 @@
 	?SetFlags@CHgVgMediaWall@@QAEXH@Z @ 112 NONAME ; void CHgVgMediaWall::SetFlags(int)
 	?SetItemToOpenedState@CHgVgMediaWall@@QAEXH@Z @ 113 NONAME ; void CHgVgMediaWall::SetItemToOpenedState(int)
 	?SetOpenedItemRect@CHgVgMediaWall@@QAEXABVTRect@@@Z @ 114 NONAME ; void CHgVgMediaWall::SetOpenedItemRect(class TRect const &)
+	?SetMenuProviderL@CHgScroller@@QAEXPAVMObjectProvider@@@Z @ 115 NONAME ; void CHgScroller::SetMenuProviderL(class MObjectProvider *)
 
--- a/uifw/ganes/EABI/ganesu.def	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/ganes/EABI/ganesu.def	Wed Apr 14 16:14:00 2010 +0300
@@ -168,4 +168,5 @@
 	_ZN14CHgVgMediaWall8SetFlagsEi @ 167 NONAME
 	_ZN14CHgVgMediaWall17SetOpenedItemRectERK5TRect @ 168 NONAME
 	_ZN14CHgVgMediaWall20SetItemToOpenedStateEi @ 169 NONAME
+	_ZN11CHgScroller16SetMenuProviderLEP15MObjectProvider @ 170 NONAME
 
--- a/uifw/ganes/inc/HgVgConstants.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/ganes/inc/HgVgConstants.h	Wed Apr 14 16:14:00 2010 +0300
@@ -132,7 +132,7 @@
     // Specific constants for full screen coverflow mediawall
     const TInt KMediaWallFullScreenItemsOnScreen(5);
     const TReal KMediaWallFullScreenCameraZoomFactor(1.5);
-    const TReal KMediaWallFullScreenCameraRotationFactor(PI/5.0);
+    const TReal KMediaWallFullScreenCameraRotationFactor(KCameraRotationFactor*1.5);
     const TReal KMediaWallFullScreenSpringVelocityToAnimationFactor(10);
     const TReal KMediaWallFullScreenZOffset(1);
     const TInt KMediaWallFullScreenRowCount(1);
--- a/uifw/ganes/inc/HgVgLetterPopup.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/ganes/inc/HgVgLetterPopup.h	Wed Apr 14 16:14:00 2010 +0300
@@ -83,7 +83,7 @@
     /**
      * 
      */
-    void EnableLanscapeRendering(TBool enabled);
+    void EnableLandscapeRendering(TBool enabled);
 
 protected: // Constructors
     CHgVgPopup();
--- a/uifw/ganes/src/HgGrid.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/ganes/src/HgGrid.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -613,14 +613,14 @@
         }
     else
         {
+        TInt mul = AknLayoutUtils::LayoutMirrored() ? -1 : 1; 
         if( iLandscapeScrolling )
             {
-            TInt change = AknLayoutUtils::LayoutMirrored() ? -iRows : iRows; 
-            ChangeSelectedIndex( change );
+            ChangeSelectedIndex( mul * iRows );
             }
         else
             {
-            ChangeSelectedIndex( 1 );
+            ChangeSelectedIndex( mul );
             }
         FitSelectionToView();
         SelectionChanged();
@@ -640,14 +640,14 @@
         }
     else
         {
+        TInt mul = AknLayoutUtils::LayoutMirrored() ? 1 : -1; 
         if( iLandscapeScrolling )
             {
-            TInt change = AknLayoutUtils::LayoutMirrored() ? iRows : -iRows; 
-            ChangeSelectedIndex( change );
+            ChangeSelectedIndex( mul * iRows );
             }
         else
             {
-            ChangeSelectedIndex( -1 );
+            ChangeSelectedIndex( mul );
             }
         FitSelectionToView();
         SelectionChanged();
--- a/uifw/ganes/src/HgScroller.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/ganes/src/HgScroller.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -50,7 +50,7 @@
 
 #include <featdiscovery.h>
 
-const TInt KIntensity = 50; // 50%
+const TInt KIntensity = 100; // 100%
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -106,7 +106,7 @@
     if( appUi && appUi->IsSingleClickCompatible() )
         {
         iDetector = CAknLongTapDetector::NewL(this);
-        iActionMenu = CAknItemActionMenu::RegisterCollectionL(*this);
+        iActionMenu = CAknItemActionMenu::RegisterCollectionL( *this );
         }
 
     iDrawUtils->EnableMarquee(HasHighlight());
@@ -555,7 +555,7 @@
         iScrollbar->SetViewPosition( iViewPosition - TPoint(iWidth/2, iHeight/2));
         
         if(prevStatic != iScrollbar->IsStatic())
-            HandleScrollbarVisibilityChange(iScrollbar->IsStatic());
+            HandleScrollbarVisibilityChange( !iScrollbar->IsStatic() );
         }
     }
 // -----------------------------------------------------------------------------
@@ -1029,7 +1029,8 @@
                     iItems[selectedItem]->Time().FormatL( iPopupText1, KGanesMonthString );
                     iItems[selectedItem]->Time().FormatL( iPopupText2, KGanesYearString );
                 )
-            // To display year correctly in arabic.
+            // To display month and year correctly in arabic.
+            AknTextUtils::LanguageSpecificNumberConversion( iPopupText1 );
             AknTextUtils::LanguageSpecificNumberConversion( iPopupText2 );
             }
         }
@@ -1770,4 +1771,26 @@
         }
     }
 
+// ---------------------------------------------------------------------------
+// CHgScroller::SetMenuProviderL()
+// ---------------------------------------------------------------------------
+//     
+EXPORT_C void CHgScroller::SetMenuProviderL( MObjectProvider* aMenuProvider )
+    {
+    SetMopParent(aMenuProvider);
+    
+    if( iActionMenu )
+        {
+        iActionMenu->RemoveCollection( *this );
+        iActionMenu = NULL;
+        }
+    
+    CAknAppUi* appUi = static_cast<CAknAppUi*>(iEikonEnv->AppUi());
+    if( appUi && appUi->IsSingleClickCompatible() )
+        {
+        iActionMenu = CAknItemActionMenu::RegisterCollectionL( *this, this );
+        }
+    }
+
+
 // End of File
--- a/uifw/ganes/src/HgVgLetterPopup.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/ganes/src/HgVgLetterPopup.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -221,7 +221,7 @@
     iParentRect = aParentRect;
     }
 
-void CHgVgPopup::EnableLanscapeRendering(TBool enabled)
+void CHgVgPopup::EnableLandscapeRendering(TBool enabled)
 {
     iLandscape = enabled;
 }
--- a/uifw/ganes/src/HgVgMediaWall.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/ganes/src/HgVgMediaWall.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -66,7 +66,9 @@
 using namespace AknTouchGestureFw;
 using namespace HgVgConstants;
 
-
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+    #define MEDIAWALL_ORIENTATION_FIX
+#endif
 
 // ============================ MEMBER FUNCTIONS ===============================
 // -----------------------------------------------------------------------------
@@ -139,6 +141,7 @@
     iCoeEnv->WsSession().Flush();
 #endif
     
+    
     SetMopParent( aParent );
     SetFlags( EHgVgMediaWallDrawToWindowGC | EHgVgMediaWallUninitialized );
     
@@ -327,7 +330,6 @@
     delete iKeyScrollingTimer;
     delete iAnimationTimer;
     delete iDelayedInit;
-    //delete iCompositionSource;
     delete iEGL;
     delete iSpring;
     delete iSurfaceBitmap;
@@ -489,7 +491,8 @@
 void CHgVgMediaWall::HandlePointerEventL( const TPointerEvent& aEvent )
     {
     // Not faded and initialized and the drawing is set to be done to WinGc
-    if( !( iFlags & EHgVgMediaWallFaded )
+    if( aEvent.iType == TPointerEvent::EButton1Down 
+            && !( iFlags & EHgVgMediaWallFaded )
             && !( iFlags & EHgVgMediaWallUninitialized )
             && iFlags & EHgVgMediaWallDrawToWindowGC )
         {
@@ -1288,10 +1291,11 @@
     
     CHgVgMediaWall* self = const_cast<CHgVgMediaWall*>(this);           
         
-    if (!self->DrawAll())
+    if (self && !self->DrawAll())
         return;
-      
-    iEGL->SwapBuffers();
+    
+    if( iEGL )  
+        iEGL->SwapBuffers();
     
     }
 
@@ -1300,31 +1304,33 @@
 // ---------------------------------------------------------------------------
 //     
 void CHgVgMediaWall::DoAnimation()
-    {    
+    { 
+    TBool draw = ETrue;
     switch (iAnimationState)
         {
         case EHgVgMediaWallAnimationStateTransition:
         case EHgVgMediaWallAnimationStateFastTransition:
             {
-            DoTransitionAnimation();
+            draw = DoTransitionAnimation();
             } break;
         case EHgVgMediaWallAnimationStateOpening:
         case EHgVgMediaWallAnimationStateClosing:
         case EHgVgMediaWallAnimationStateIdle:
         case EHgVgMediaWallAnimationStateItemOpened:
             {
-            DoSelectionAnimation();
+            draw = DoSelectionAnimation();
             } break;
         }
-
-    DrawOpenVG();
+    
+    if(draw)
+        DrawOpenVG();
     }
 
 // ---------------------------------------------------------------------------
 // CHgVgMediaWall::DoSelectionAnimation()
 // ---------------------------------------------------------------------------
 //     
-void CHgVgMediaWall::DoSelectionAnimation()
+TBool CHgVgMediaWall::DoSelectionAnimation()
     {
     TTime now;
     now.HomeTime();
@@ -1336,6 +1342,7 @@
     
     // calculate animation alpha
     TReal alpha = (TReal)diff / (TReal)KSelectionAnimationDuration;
+    TBool draw = ETrue;
 
     switch (iAnimationState)
         {
@@ -1354,6 +1361,7 @@
         case EHgVgMediaWallAnimationStateItemOpened:
             {
             iAnimationTimer->Cancel();
+            draw = EFalse;
             if (iSelectionObserver)
                 {   
                 if (iMediaWallStyle == EHgVgMediaWallStyleGrid)
@@ -1370,7 +1378,9 @@
             {
             iAnimationTimer->Cancel();
             } break;
-        }    
+        } 
+    
+    return draw;
     }
 
 
@@ -1378,7 +1388,7 @@
 // CHgVgMediaWall::DoTransitionAnimation()
 // ---------------------------------------------------------------------------
 //     
-void CHgVgMediaWall::DoTransitionAnimation()
+TBool CHgVgMediaWall::DoTransitionAnimation()
     {
     TTime now;
     now.HomeTime();
@@ -1406,7 +1416,8 @@
                 }
             }
         }
-                        
+    
+    return ETrue;                    
     }
 
 void CHgVgMediaWall::HandleTransitionAnimationStop()
@@ -1599,6 +1610,11 @@
             iEGL->InitWindowSurfaceL(Window());
         }
 
+    if(!iCompositionSource)
+        {
+        iCompositionSource = CAlfCompositionSource::NewL(Window());
+        iCompositionSource->EnableAlpha();
+        }
 
     delete iRenderer; iRenderer = NULL;    
     delete iArtistLabel; iArtistLabel = NULL;
@@ -2322,6 +2338,7 @@
     delete iSkinRenderer; iSkinRenderer = NULL;
     delete iEmptyLabel; iEmptyLabel = NULL;
     delete iEGL; iEGL = NULL;
+    delete iCompositionSource; iCompositionSource = NULL;
     }
 
 // -----------------------------------------------------------------------------
@@ -2501,8 +2518,8 @@
 
 void CHgVgMediaWall::InitLabelsL(TInt aLayoutVariant)
     {
-    TAknTextComponentLayout l0 = AknLayoutScalable_Apps::main_cf0_pane_t1(aLayoutVariant);
-    TAknTextComponentLayout l1 = AknLayoutScalable_Apps::main_cf0_pane_t2(aLayoutVariant);
+    TAknTextComponentLayout l0 = AknLayoutScalable_Apps::main_cf0_pane_t2(aLayoutVariant);
+    TAknTextComponentLayout l1 = AknLayoutScalable_Apps::main_cf0_pane_t1(aLayoutVariant);
     
     TAknLayoutText t0;
     TAknLayoutText t1;
--- a/uifw/ganes/src/HgVgMediaWallRenderer.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/ganes/src/HgVgMediaWallRenderer.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -519,17 +519,6 @@
             aAnimationAlpha,
             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);
     }
 
--- a/uifw/ganes/src/HgVgSkinRenderer.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uifw/ganes/src/HgVgSkinRenderer.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -59,7 +59,7 @@
 void CHgVgSkinRenderer::ConstructL ()
     {
         
-    iDrawBuffer = CHgVgDrawBuffer::NewL( TSize(iRect.Width(), iRect.Height()), EColor64K );
+    iDrawBuffer = CHgVgDrawBuffer::NewL( TSize(iRect.Width(), iRect.Height()), EColor16MA );
 
     
     }
@@ -96,12 +96,6 @@
 void CHgVgSkinRenderer::UpdateSkinL(const MObjectProvider* aProvider, 
         const CCoeControl* aControl)
     {
-    // render skin to draw buffer
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    MAknsControlContext* cc = AknsDrawUtils::ControlContext( aProvider );
-    AknsDrawUtils::DrawBackground( skin, cc, aControl, iDrawBuffer->Gc(), TPoint(0,0), 
-            aControl->Rect(), KAknsDrawParamDefault );
-
     // destroy old vg image
     if (iSkinImage != VG_INVALID_HANDLE)
         {
@@ -109,20 +103,27 @@
         iSkinImage = VG_INVALID_HANDLE;
         }
 
-    // create new image for the skin
-    iSkinImage = vgCreateImage(VG_sRGB_565, 
-            iRect.Width(), iRect.Height(), 
-            VG_IMAGE_QUALITY_NONANTIALIASED);
-    
-    // handle out of memory
-    if( iSkinImage == VG_INVALID_HANDLE )
+    // render skin to draw buffer
+    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+    MAknsControlContext* cc = AknsDrawUtils::ControlContext( aProvider );
+    if( AknsDrawUtils::DrawBackground( skin, cc, aControl, iDrawBuffer->Gc(), TPoint(0,0), 
+            aControl->Rect(), KAknsDrawParamDefault ) )
         {
-        User::Leave(KErrNoMemory);
+        // create new image for the skin
+        iSkinImage = vgCreateImage(VG_sRGBA_8888, 
+                iRect.Width(), iRect.Height(), 
+                VG_IMAGE_QUALITY_NONANTIALIASED);
+        
+        // handle out of memory
+        if( iSkinImage == VG_INVALID_HANDLE )
+            {
+            User::Leave(KErrNoMemory);
+            }
+                
+        // Copy to draw buffer to vg image
+        iDrawBuffer->GetDrawBufferToVgImage(TRect(TPoint(0,0), TPoint(iRect.Width(), iRect.Height())), 
+                TPoint(0,0), iSkinImage, VG_sARGB_8888);    
         }
-            
-    // Copy to draw buffer to vg image
-    iDrawBuffer->GetDrawBufferToVgImage(TRect(TPoint(0,0), TPoint(iRect.Width(), iRect.Height())), 
-            TPoint(0,0), iSkinImage, VG_sRGB_565);    
     }
 
 void CHgVgSkinRenderer::SetRect( const TRect& aRect )
@@ -137,7 +138,16 @@
 //
 void CHgVgSkinRenderer::Draw() const
     {
-    HgVgHelper::DrawImage(iSkinImage, TPoint(0, 0), iRect, EFalse, iLandscape);
+    
+    VGfloat color[] = {255,255,255,0};
+    vgSetfv(VG_CLEAR_COLOR, 4, color);
+    if(iLandscape)
+        vgClear(0, 0, iRect.Height(), iRect.Width());
+    else
+        vgClear(0, 0, iRect.Width(), iRect.Height());
+    
+    if( iSkinImage != VG_INVALID_HANDLE )
+        HgVgHelper::DrawImage(iSkinImage, TPoint(0, 0), iRect, EFalse, iLandscape);
     }
 
 void CHgVgSkinRenderer::EnableLanscapeRendering(TBool aLandscape)
--- a/uiutils/Findutil/inc/FindUtilChinese.h	Wed Mar 31 21:59:52 2010 +0300
+++ b/uiutils/Findutil/inc/FindUtilChinese.h	Wed Apr 14 16:14:00 2010 +0300
@@ -603,6 +603,18 @@
      */
     MFindStringConverter* iConverter;
     
+    /**
+     * Avoid the performace problem cause by frequently TLS accessing
+     */
+    CEikonEnv*  iEikEnv;
+    
+    
+    /**
+     * Whether current process is phonebook(and its server) or not
+     */
+    TBool   iIsPhoneBook;
+
+    
     
     };
 
--- a/uiutils/Findutil/src/FindUtilChinese.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/uiutils/Findutil/src/FindUtilChinese.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -108,7 +108,13 @@
                                             
     iWatcherAdaptive = CFindRepositoryWatcher::NewL(KCRUidAvkon,
                                             TCallBack(HandleFindRepositoryCallBack, this),
-                                            iRepositoryFindAdaptive);                                        
+                                            iRepositoryFindAdaptive); 
+    iEikEnv = CEikonEnv::Static();
+    if (iEikEnv)
+        {
+        TUid appUid(iEikEnv->EikAppUi()->Application()->AppDllUid());
+        iIsPhoneBook = (appUid== KUidPhoneBook || appUid == KUidPhoneBookServer);
+        }
     }
 
 // ---------------------------------------------------------
@@ -122,7 +128,9 @@
     iSearchMethodPRC(EAdptSearchPinyin),
     iSearchMethodTaiWan(EAdptSearchZhuyin),
     iSearchMethodHongKong(EAdptSearchStroke),
-    iSearchMethodAdaptive(EFalse)
+    iSearchMethodAdaptive(EFalse),    
+    iEikEnv(NULL),
+    iIsPhoneBook(EFalse)
     {
     }
 
@@ -179,10 +187,9 @@
 TBool CFindUtilChinese::DoTranslationL(TInt16 aHZUnicode,  
                                        RPointerArray<HBufC>& aSpellList)
     {
-    if(CEikonEnv::Static())
+    if(iEikEnv)
         {
-        if (iSearchMethodAdaptive &&(CEikonEnv::Static()->EikAppUi()->Application()->AppDllUid() == KUidPhoneBook ||
-                CEikonEnv::Static()->EikAppUi()->Application()->AppDllUid() == KUidPhoneBookServer ))
+        if (iSearchMethodAdaptive && iIsPhoneBook)
                 {
                 if (!T9ChineseTranslationAdaptiveL(aHZUnicode, aSpellList))
                     {