Revision: 201017 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 11 May 2010 16:27:42 +0300
branchRCL_3
changeset 23 3d340a0166ff
parent 18 0aa5fbdfbc30
child 24 123e51441e0e
child 25 941195f2d488
Revision: 201017 Kit: 201019
CommonAdapter/inc/GlobalNoteImpl.h
CommonAdapter/src/GlobalNote.cpp
akntouchgesturefw/cenrep/2002676F.txt
akntouchgesturefw/conf/s60/akntouchgesturefw.confml
akntouchgesturefw/inc/akntouchgesturefwdefs.h
classicui_plat/avkon_localised_texts_api/loc/avkon.loc
classicui_plat/avkon_secondary_display_api/group/bld.inf
classicui_plat/extended_dialogs_api/inc/EikDialogExt.h
classicui_plat/extended_notifiers_api/inc/aknkeylocknotifier.h
classicui_plat/extended_options_menu_api/inc/akncollection.h
classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h
classicui_plat/find_item_ui_api/inc/finditemdialog.h
classicui_plat/find_item_ui_api/tsrc/conf/tctestdomfinditemdialog.cfg
classicui_plat/find_item_ui_api/tsrc/conf/ui_testdomfinditemdialog.cfg
classicui_plat/find_item_ui_api/tsrc/group/testdomfinditem.mmp
classicui_plat/find_item_ui_api/tsrc/inc/testdomfinditem.h
classicui_plat/find_item_ui_api/tsrc/src/testdomfinditem.cpp
classicui_plat/find_item_ui_api/tsrc/src/testdomfinditemblocks.cpp
classicui_plat/find_item_ui_api/tsrc/src/testdomfinditemblocksdialog.cpp
classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h
classicui_plat/item_finder_api/inc/ItemFinder.h
classicui_plat/stylus_activated_popup_api/tsrc/inc/testdomstylusactivepopup.h
classicui_pub/animation_api/tsrc/src/testsdkanimationblocks.cpp
classicui_pub/buttons_api/inc/eikcba.h
classicui_pub/buttons_api/tsrc/src/testsdkbuttonsblockseikcba.cpp
classicui_pub/document_handler_api/tsrc/inc/testsdkdocumenthandlerobserver.h
classicui_pub/editors_api/inc/EIKEDWIN.H
classicui_pub/editors_api/tsrc/conf/tctestsdkeditorsedwin.cfg
classicui_pub/editors_api/tsrc/conf/ui_testsdkeditorsedwin.cfg
classicui_pub/editors_api/tsrc/group/testsdkeditors.mmp
classicui_pub/editors_api/tsrc/inc/testsdkeditors.h
classicui_pub/editors_api/tsrc/src/testsdkeditorsblocks.cpp
classicui_pub/editors_api/tsrc/src/testsdkeditorsblocksedwin.cpp
classicui_pub/editors_api/tsrc/src/testsdkeditorsblocksnumedwin.cpp
classicui_pub/editors_api/tsrc/src/testsdkeditorsblockssecrettext.cpp
classicui_pub/hierarchical_lists_api/inc/akntreelist.h
classicui_pub/hierarchical_lists_api/tsrc/src/testsdkhierarchicallistsblockstl.cpp
classicui_pub/labels_api/tsrc/src/testsdklabelsblockslabel.cpp
classicui_pub/labels_api/tsrc/src/testsdklabelslblocksfilename.cpp
classicui_pub/lists_api/group/bld.inf
classicui_pub/lists_api/inc/EIKCLB.H
classicui_pub/lists_api/inc/EIKLBI.H
classicui_pub/lists_api/inc/EIKLBV.H
classicui_pub/lists_api/inc/EIKLBX.H
classicui_pub/lists_api/inc/aknmarkingmodeobserver.h
classicui_pub/lists_api/inc/eikfrlb.h
classicui_pub/lists_api/inc/eikfrlbd.h
classicui_pub/lists_api/tsrc/src/testsdklistsblockseikclbd.cpp
classicui_pub/misc_controls_api/inc/EIKCAPC.H
classicui_pub/notes_api/tsrc/src/testsdknotesblocksand.cpp
classicui_pub/notes_api/tsrc/src/testsdknotesblockseikprogi.cpp
classicui_pub/notes_api/tsrc/src/testsdknotesblockssdn.cpp
classicui_pub/options_menu_api/inc/EIKMENUP.H
classicui_pub/queries_api/inc/aknlistquerydialog.h
classicui_pub/searchfield_api/inc/aknsfld.h
classicui_pub/server_application_api/tsrc/inc/testsdkappservice.h
classicui_pub/server_application_api/tsrc/inc/testsdkappservicebase.h
classicui_pub/server_application_api/tsrc/src/testsdkserverapplicationblocks.cpp
classicui_pub/setting_pages_api/inc/AknTextSettingPage.h
classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestappfrm/src/bctestaknapplication.cpp
classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestdocandinit/inc/bctestDocAndInitcase.h
classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctesteditor/inc/bctesteditorcase.h
classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlabelinfoindicators/src/bctestlabelinfoindicatorscase.cpp
classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp
classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistformatbasecase.cpp
classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestserverapp/inc/bctestserverappcase.h
classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestserverapp/src/bctestserverappcase.cpp
classicui_pub/tsrc/bc/apps/S60_SDK3.1/bctestmisc/src/bctestmisccase.cpp
classicui_pub/tsrc/bc/apps/S60_SDK5.0/bctesttouchpane/src/bctesttouchpanecase.cpp
classicui_pub/ui_framework_definitions_api/inc/EIKON.HRH
classicui_pub/ui_framework_definitions_api/inc/avkon.hrh
classicui_pub/ui_framework_utilities_api/tsrc/src/testsdkuifwutilblocksaknutils.cpp
commonuis/CommonDialogs/loc/commondialogs.loc
commonuis/CommonUi/EABI/CommonUIU.DEF
commonuis/CommonUi/bwins/CommonUIU.def
commonuis/CommonUi/group/CommonUI.mmp
commonuis/CommonUi/src/FindItemDialog.cpp
commonuis/CommonUi/src/ItemFinder.cpp
commonuisupport/uikon/srvsrc/EIKNFYSV.CPP
lafagnosticuifoundation/cone/src/COECNTSS.CPP
lafagnosticuifoundation/cone/src/COEMAINSECUREFEP.CPP
lafagnosticuifoundation/cone/src/CoeEnvExtra.cpp
lafagnosticuifoundation/uigraphicsutils/tulsrc/tulphonenumberutils.cpp
ode/src/collision_kernel.cpp
psln/PslnFramework/src/PslnFWBaseView.cpp
psln/Rss/Psln.rss
psln/Src/PslnScreenSaverView.cpp
psln/pslnslidesetdialog/src/pslnslidesetdialog.cpp
uifw/AknGlobalUI/AknCapServer/src/AknMemoryCardDialogImpl.cpp
uifw/AknGlobalUI/NotifierWrapper/src/AknNotiferAppServerApplication.cpp
uifw/AknGlobalUI/OldStyleNotif/Inc/AknNotifyPlugin.h
uifw/AknGlobalUI/OldStyleNotif/Inc/AknSoftNotificationPlugin.h
uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListMsgPopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/aknkeylocknotifier.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/aknmessagereaderlongpressdetector.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemconfirmationpopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemmsgpopup.cpp
uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemprogresspopup.cpp
uifw/AknGlobalUI/cdma/notpisrc/aknkeylocknotifierCdma.cpp
uifw/AvKon/aknhlist/BWINS/aknhlistU.def
uifw/AvKon/aknhlist/EABI/aknhlistU.def
uifw/AvKon/aknhlist/group/aknhlist.mmp
uifw/AvKon/aknhlist/inc/akntreelistview.h
uifw/AvKon/aknhlist/src/akntreelist.cpp
uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp
uifw/AvKon/aknhlist/src/akntreelistview.cpp
uifw/AvKon/aknphysics/src/aknphysics.cpp
uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp
uifw/AvKon/group/avkon_icons_dc.mk
uifw/AvKon/group/bld.inf
uifw/AvKon/group/mif2cdlindex.flm
uifw/AvKon/group/smiley.mbg
uifw/AvKon/group/smiley.mif
uifw/AvKon/notifsrc/AknSDData.cpp
uifw/AvKon/src/AknAdaptiveSearchGrid.cpp
uifw/AvKon/src/AknAppUi.cpp
uifw/AvKon/src/AknCharMap.cpp
uifw/AvKon/src/AknCheckBoxSettingPage.cpp
uifw/AvKon/src/AknIndicatorContainer.cpp
uifw/AvKon/src/AknInfoPopupNote.cpp
uifw/AvKon/src/AknNoteDialog.cpp
uifw/AvKon/src/AknPopupSettingPage.cpp
uifw/AvKon/src/AknPreviewPopUp.cpp
uifw/AvKon/src/AknQueryControl.cpp
uifw/AvKon/src/AknSettingPage.cpp
uifw/AvKon/src/AknTransparentCameraSettingPage.cpp
uifw/AvKon/src/AknViewAppUi.cpp
uifw/AvKon/src/Aknslider.cpp
uifw/AvKon/src/aknApp.cpp
uifw/AvKon/src/aknbattery.cpp
uifw/AvKon/src/aknchoicelist.cpp
uifw/AvKon/src/akncombinedpane.cpp
uifw/AvKon/src/akndigitalclock.cpp
uifw/AvKon/src/akndiscreetpopupcontrol.cpp
uifw/AvKon/src/aknindicator.cpp
uifw/AvKon/src/aknlistquerydialog.cpp
uifw/AvKon/src/aknlists.cpp
uifw/AvKon/src/aknlongtapanimation.cpp
uifw/AvKon/src/aknmessagequerydialog.cpp
uifw/AvKon/src/aknsfld.cpp
uifw/AvKon/src/aknutils.cpp
uifw/AvKon/src/eikfrlb.cpp
uifw/AvKon/src/eikfrlbd.cpp
uifw/AvKon/src/eikslb.cpp
uifw/AvKon/srcdata/avkon.rss
uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestappfrm/src/bctestaknapplication.cpp
uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestdocandinit/inc/bctestDocAndInitcase.h
uifw/AvKon/tsrc/bc/S60_SDK3.0/bctesteditor/inc/bctesteditorcase.h
uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlabelinfoindicators/src/bctestlabelinfoindicatorscase.cpp
uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp
uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlist/src/bctestlistformatbasecase.cpp
uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestserverapp/inc/bctestserverappcase.h
uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestserverapp/src/bctestserverappcase.cpp
uifw/AvKon/tsrc/bc/S60_SDK3.1/bctestmisc/src/bctestmisccase.cpp
uifw/AvKon/tsrc/bc/S60_SDK3.2/bctesttouchpane/src/bctesttouchpanecase.cpp
uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestappfrm/src/bctestaknapplication.cpp
uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestdocandinit/inc/bctestDocAndInitcase.h
uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestmix50/inc/bctestmix50patchmisc.h
uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestmix50/src/bctestmix50patchcontrolcase.cpp
uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/inc/bctestmixmclgeneralcase.h
uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/src/bctestmixmclgeneralcase.cpp
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknapp.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknappui.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwakncontainer.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwakndocument.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknview.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwcase.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwserviceifmenu.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknanimdata.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknanimview.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknbatterypane.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomakncharmap.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknctrlcase.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknecsdetector.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknindicatorcontainer.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknnoctrlcase.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknrclasscase.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomuiservershutdownapps.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomuiserverunlockmedia.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/inc/bctestdomadapter.h
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/src/bctestdomlayoudatacase.cpp
uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/src/bctestdomskincase.cpp
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknapp.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknappui.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwakncontainer.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwakndocument.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknview.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwcase.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwserviceifmenu.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknanimdata.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknanimview.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknbatterypane.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomakncharmap.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknctrlcase.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknecsdetector.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknindicatorcontainer.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknnoctrlcase.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknrclasscase.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomuiservershutdownapps.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomuiserverunlockmedia.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/inc/bctestdomadapter.h
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/src/bctestdomlayoudatacase.cpp
uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/src/bctestdomskincase.cpp
uifw/AvKon/tsrc/bc/script/codetest_script/output/api_table.bak.xml
uifw/EikStd/EABI/EIKCOCTLU.DEF
uifw/EikStd/bwins/EIKCOCTLU.DEF
uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicator.h
uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicatorItem.h
uifw/EikStd/coctlinc/aknitemactionmenuregister.h
uifw/EikStd/coctlinc/aknmarkingmode.h
uifw/EikStd/coctlsrc/AknButton.cpp
uifw/EikStd/coctlsrc/AknClearer.cpp
uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp
uifw/EikStd/coctlsrc/EIKCOCTL.MMP
uifw/EikStd/coctlsrc/EIKEDWIN.CPP
uifw/EikStd/coctlsrc/EIKLBI.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/akndoublespanscrollindicatoritem.cpp
uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp
uifw/EikStd/coctlsrc/aknitemactionmenu.cpp
uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp
uifw/EikStd/coctlsrc/aknmarkingmode.cpp
uifw/EikStd/coctlsrc/aknstyluspopupmenu.cpp
uifw/EikStd/coctlsrc/aknstyluspopupmenuphysicshandler.cpp
uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp
uifw/EikStd/coctlsrc/eikcba.cpp
uifw/EikStd/dlginc/aknrecordinggc.h
uifw/EikStd/dlgsrc/AknMediatorFacade.cpp
uifw/EikStd/dlgsrc/EIKCAPC.CPP
uifw/EikStd/dlgsrc/EIKDIALG.CPP
uifw/EikStd/dlgsrc/EIKDPAGE.CPP
uifw/EikStd/dlgsrc/aknrecordinggc.cpp
uifw/eikctl/src/EIKCLB.CPP
uifw/eikctl/src/EIKCLBD.CPP
uifw/ganes/group/bld.inf
uifw/ganes/src/HgIndicatorManager.cpp
uifw/ganes/src/HgScroller.cpp
uifw/ganes/src/HgVgHelper.cpp
uifw/ganes/src/HgVgLabel.cpp
uifw/ganes/src/HgVgLetterPopup.cpp
uifw/ganes/src/HgVgMediaWall.cpp
--- a/CommonAdapter/inc/GlobalNoteImpl.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/CommonAdapter/inc/GlobalNoteImpl.h	Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
 //  INCLUDES
 #include <e32std.h>
 #include <AknGlobalNote.h>
-#include <globalnote.h>
+#include <GlobalNote.h>
 
 // CLASS DECLARATION
 
--- a/CommonAdapter/src/GlobalNote.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/CommonAdapter/src/GlobalNote.cpp	Tue May 11 16:27:42 2010 +0300
@@ -17,7 +17,7 @@
 
 
 // INCLUDE FILES
-#include <globalnote.h>
+#include <GlobalNote.h>
 #include <avkon.rsg> // For softkey resources
 
 #include "GlobalNoteImpl.h"
Binary file akntouchgesturefw/cenrep/2002676F.txt has changed
Binary file akntouchgesturefw/conf/s60/akntouchgesturefw.confml has changed
--- a/akntouchgesturefw/inc/akntouchgesturefwdefs.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/akntouchgesturefw/inc/akntouchgesturefwdefs.h	Tue May 11 16:27:42 2010 +0300
@@ -47,7 +47,7 @@
 const TInt KTapThreshold = 20;
 
 /// Pixel threshold value used for deciding if pointer has been dragged.
-const TInt KDefaultDragThreshold = 20;
+const TInt KDefaultDragThreshold = 40;
 
 /// Initial threshold for pinch. This is used when both pointers are 
 /// just set down.
--- a/classicui_plat/avkon_localised_texts_api/loc/avkon.loc	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/avkon_localised_texts_api/loc/avkon.loc	Tue May 11 16:27:42 2010 +0300
@@ -4304,4 +4304,18 @@
 //r: 5.0
 #define qtn_activate_korean_mode "Korean mode"
 
+//d:Command in options menu.
+//d:Mark multiple -operation. Launches list multiple marking mode.
+//l:list_single_pane_t1_cp2/opt3
+//r: TB9.2
+//
+#define qtn_options_list_mark_multiple "Mark multiple"
+
+//d: Text shown in navi pane when phone is in marking mode
+//l: navi_text_pane_t1
+//r: TB9.2
+//
+#define qtn_navi_pane_marking_mode "Marking mode"
+
 // End of File
+
--- a/classicui_plat/avkon_secondary_display_api/group/bld.inf	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/avkon_secondary_display_api/group/bld.inf	Tue May 11 16:27:42 2010 +0300
@@ -24,4 +24,4 @@
 
 PRJ_EXPORTS
 
-../inc/SecondaryDisplay/AknSecondaryDisplayDefs.h     MW_LAYER_PLATFORM_EXPORT_PATH(SecondaryDisplay/AknSecondaryDisplayDefs.h)
+../inc/SecondaryDisplay/AknSecondaryDisplayDefs.h     MW_LAYER_PLATFORM_EXPORT_PATH(secondarydisplay/AknSecondaryDisplayDefs.h)
--- a/classicui_plat/extended_dialogs_api/inc/EikDialogExt.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/extended_dialogs_api/inc/EikDialogExt.h	Tue May 11 16:27:42 2010 +0300
@@ -109,6 +109,8 @@
 public:
     TBitFlags iPublicFlags;
     TBool iInitialMade;
+    TInt iButtonGroupResourceId;
+    TBool iDeleteEmbeddedCba;
   } ;
 
 
--- a/classicui_plat/extended_notifiers_api/inc/aknkeylocknotifier.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/extended_notifiers_api/inc/aknkeylocknotifier.h	Tue May 11 16:27:42 2010 +0300
@@ -98,8 +98,8 @@
     CAknKeyLockControl();
     ~CAknKeyLockControl();
     void ConstructL();
-    void EnableKeylock(TBool aShowNote = ETrue);
-    void DisableKeylock();
+    void EnableKeylock(TBool aShowNote = ETrue, TBool aNotifySysApp = ETrue);
+    void DisableKeylock(TBool aNotifySysApp = ETrue);
     void OfferKeylock();
 
     void DisplayLockedNote();
--- a/classicui_plat/extended_options_menu_api/inc/akncollection.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/inc/akncollection.h	Tue May 11 16:27:42 2010 +0300
@@ -61,6 +61,17 @@
         };
 
     /**
+     * Enum for collection extension types.
+     */
+    enum TExtensionType
+        {
+        /**
+         * Collection supports multiple marking mode
+         */
+        EAknMarkingCollection = 1
+        };
+
+    /**
      * Returns the collection state. The state is combination of
      * flags defined in @c TStateFlag. 
      *
@@ -85,4 +96,89 @@
             TUint aExtensionId, TAny*& a0, TAny* a1 ) = 0;
     };
 
+
+/**
+ * Collection marking mode handler.
+ *
+ * This interface is intended for those collections that implement
+ * multiple marking mode and wish to use mode directly from options menu.
+ *
+ * @lib eikcoctl
+ * @since S60 v5.2
+ */
+class MAknMarkingCollection
+    {
+public:
+
+    /**
+     * Extension type.
+     */
+    enum { TYPE = MAknCollection::EAknMarkingCollection };
+
+    /**
+     * Enum for collection state flags.
+     */
+    enum TStateFlag
+        {
+        /**
+         * Collection is in multiple marking mode.
+         */
+        EStateMarkingMode     = 0x00000001,
+        /**
+         * Collection has marked items.
+         */
+        EStateMarkedItems             = 0x00000002,
+        /**
+         * Collection is empty
+         */
+        EStateCollectionEmpty         = 0x00000004
+        };
+
+    /**
+     * Sets multiple marking state.
+     *
+     * @param aActive ETrue if multiple marking should be active.
+     */
+    virtual void SetMultipleMarkingState( TBool aActive ) = 0;
+
+    /**
+     * Request to end marking mode
+     * 
+     * @return ETrue if marking mode can be ended 
+     */
+    virtual TBool ExitMarkingMode() = 0;
+    
+    /**
+     * Returns the collection marking state. The state is combination of
+     * flags defined in @c TStateFlag. 
+     *
+     * @return  Marking state.
+     */
+    virtual TUint MarkingState() const = 0;
+    
+    /**
+     * Marks the currently selected item.
+     */
+    virtual void MarkCurrentItemL() = 0;
+     
+    /**
+     * Marks all items in the collection.
+     */
+    virtual void MarkAllL() = 0; 
+
+    /**
+     * Unmarks all items in the collection.
+     */
+    virtual void UnmarkAll() = 0; 
+    
+    /*
+     * Can current item be marked
+     * 
+     * @return ETrue if item is markable
+     */
+    virtual TBool CurrentItemMarkable() = 0;
+    
+    };
+
 #endif // M_AKNCOLLECTION_H
+
--- a/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h	Tue May 11 16:27:42 2010 +0300
@@ -27,6 +27,7 @@
 class CAknStylusPopUpMenu;
 class CEikMenuBar;
 class CAknItemActionMenuData;
+class CAknMarkingMode;
 
 /**
  * Item action menu.
@@ -222,6 +223,14 @@
      */
     MObjectProvider* Owner() const;
 
+    /**
+     * Provides marking mode handler.
+     *
+     * @internal
+     * @return Marking mode handler.
+     */
+    CAknMarkingMode& MarkingMode();
+
 private:
 
     /**
@@ -328,6 +337,12 @@
      * Not own
      */
     MObjectProvider* iOwner;
+
+    /**
+     * Multiple marking handler.
+     * Own.
+     */
+    CAknMarkingMode* iMarking;
     };
 
 #endif // C_AKNITEMACTIONMENU_H
--- a/classicui_plat/find_item_ui_api/inc/finditemdialog.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/inc/finditemdialog.h	Tue May 11 16:27:42 2010 +0300
@@ -59,6 +59,7 @@
 class CRichTextEditorContainer;
 class CSendUi;
 class CItemFinderExtension;
+class MTouchFeedback;
 
 // CLASS DECLARATION
 
@@ -167,6 +168,14 @@
         * @return CAknDialog::ExecuteLD()
         */
         IMPORT_C TInt ExecuteLD();
+        
+        /**
+         * Enable single click
+         * @since S60 5.2
+         * @param aEnable     Enables single click.
+         *                    Disabled by default.
+         */
+        IMPORT_C void EnableSingleClick ( TBool aEnable );
 
     public: // Functions from base classes
         /**
@@ -179,6 +188,13 @@
         IMPORT_C TKeyResponse OfferKeyEventL(
             const TKeyEvent& aKeyEvent,
             TEventCode aType );
+        
+        /**
+         * From CCoeControl
+         * Handle pointer events.
+         * @param aPointerEvent information about the pointerevent
+         */
+        void HandlePointerEventL ( const TPointerEvent& aPointerEvent );
 
     protected:  // Functions from base classes
 
@@ -424,6 +440,26 @@
         */
         void CreateInternetCallL();
 
+        /**
+         * Handles pointer events in single click mode.
+         *
+         * @param aPointerEvent information about the pointerevent
+         */
+        void DoHandlePointerEventL ( const TPointerEvent& aPointerEvent );
+
+        /**
+         * Returns ETrue if current item has visible highlight
+         *
+         * @return ETrue if current item has visible highlight
+         */
+        TBool CurrentItemHasHighlight();
+        
+        /**
+         * Highlights current item.
+         */
+        void HighlightCurrentItem();
+
+
     private: //data
         // Pointer to controller which controls engine and dialog
         CFindItemController* iController;
@@ -507,8 +543,17 @@
         // Rows used in viewer.
         TInt iRows;
         
-        CItemFinderExtension*	iExtension;
+        CItemFinderExtension* iExtension;
+        
+        // Last tapped item
+        TPoint iLastTappedItem;
 
+        // Is single click enabled
+        TBool iSingleClick;
+
+        // Tactile Feedback interface
+        MTouchFeedback* iFeedback;        		
+		
     public: // new methods
         void DeleteMeL();
         static TInt DeleteMe(TAny* aThis);
@@ -516,7 +561,6 @@
     private: // new methods
         void FormatDialDataL( TInt aCommandId );
         TBool IsSendKeyCallVoIP() const;
-
 };
 
 #endif  // FINDITEMDIALOG_H
--- a/classicui_plat/find_item_ui_api/tsrc/conf/tctestdomfinditemdialog.cfg	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/conf/tctestdomfinditemdialog.cfg	Tue May 11 16:27:42 2010 +0300
@@ -21,3 +21,9 @@
 title TestDialogOfferKeyEventL
 run testscripter c:\testframework\ui_testdomfinditemdialog.cfg 5
 [Endtest] 
+
+
+[Test]
+title TestDialogEnableSingleClick
+run testscripter c:\testframework\ui_testdomfinditemdialog.cfg 6
+[Endtest] 
--- a/classicui_plat/find_item_ui_api/tsrc/conf/ui_testdomfinditemdialog.cfg	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/conf/ui_testdomfinditemdialog.cfg	Tue May 11 16:27:42 2010 +0300
@@ -39,3 +39,9 @@
 [Endtest] 
 
 
+[Test]
+title TestDialogEnableSingleClick
+create testdomfinditem test
+test TestDialogEnableSingleClick
+delete test
+[Endtest]
--- a/classicui_plat/find_item_ui_api/tsrc/group/testdomfinditem.mmp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/group/testdomfinditem.mmp	Tue May 11 16:27:42 2010 +0300
@@ -37,7 +37,7 @@
     MW_LAYER_SYSTEMINCLUDE
 
     SOURCEPATH     ../data
-    START RESOURCE  testdomfineitem.rss
+    START RESOURCE  testdomfinditem.rss
     HEADER
     TARGETPATH RESOURCE_FILES_DIR
     LANGUAGE_IDS
--- a/classicui_plat/find_item_ui_api/tsrc/inc/testdomfinditem.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/inc/testdomfinditem.h	Tue May 11 16:27:42 2010 +0300
@@ -128,6 +128,14 @@
     */
     virtual TInt TestDialogOfferKeyEventL( CStifItemParser& aItem );
 
+    /**
+    * test EnableSingleClick method.
+    * @since S60 5.2
+    * @param aItem never used.
+    * @return Symbian OS error code.
+    */
+    virtual TInt TestDialogEnableSingleClick( CStifItemParser& aItem );
+
 private: // test functions in finditemmenu.h
 
     /**
--- a/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditem.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditem.cpp	Tue May 11 16:27:42 2010 +0300
@@ -105,7 +105,13 @@
                           EFalse );
 
     _LIT( KResourceFile, "C:\\resource\\testdomfinditem.rsc" );
-    iOffset = CCoeEnv::Static()->AddResourceFileL( KResourceFile );
+    TRAPD ( err, iOffset = CCoeEnv::Static()->AddResourceFileL( KResourceFile ) );
+
+    if ( KErrNone != err )
+        {
+        _LIT( KZResourceFile, "Z:\\resource\\testdomfinditem.rsc" );
+        iOffset = CCoeEnv::Static()->AddResourceFileL( KZResourceFile );
+        }
 
     SendTestClassVersion();
 
--- a/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditemblocks.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditemblocks.cpp	Tue May 11 16:27:42 2010 +0300
@@ -44,6 +44,7 @@
         ENTRY( "TestDialogExecuteLD", Ctestdomfinditem::TestDialogExecuteLDL ),
         ENTRY( "TestDialogProcessCommandL", Ctestdomfinditem::TestDialogProcessCommandL ),
         ENTRY( "TestDialogOfferKeyEventL", Ctestdomfinditem::TestDialogOfferKeyEventL ),
+        ENTRY( "TestDialogEnableSingleClick", Ctestdomfinditem::TestDialogEnableSingleClick ),
 
         // test functions in finditemmenu.h
         ENTRY( "TestMenuNewL", Ctestdomfinditem::TestMenuNewL ),
--- a/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditemblocksdialog.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditemblocksdialog.cpp	Tue May 11 16:27:42 2010 +0300
@@ -131,3 +131,29 @@
 
     }
 
+
+// -----------------------------------------------------------------------------
+// Ctestdomfinditem::TestDialogEnableSingleClick
+// -----------------------------------------------------------------------------
+//
+TInt Ctestdomfinditem::TestDialogEnableSingleClick( CStifItemParser& /*aItem*/ )
+    {
+    // Print to UI
+    _LIT( Ktestdomfinditem, "testdomfinditem" );
+    _LIT( KTestEnableSingleClick, "In DialogEnableSingleClick" );
+    TestModuleIf().Printf( 0, Ktestdomfinditem, KTestEnableSingleClick );
+    // Print to log file
+    iLog->Log( KTestEnableSingleClick );
+
+    CFindItemDialog* dialog = CFindItemDialog::NewL( KUrlDes,
+            CFindItemEngine::EFindItemSearchURLBin );
+    CleanupStack::PushL( dialog );
+    STIF_ASSERT_NOT_NULL( dialog );
+
+    dialog->EnableSingleClick ( EFalse );
+    dialog->EnableSingleClick ( ETrue );
+
+    CleanupStack::PopAndDestroy( dialog );
+    return KErrNone;
+    }
+
--- a/classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h	Tue May 11 16:27:42 2010 +0300
@@ -793,9 +793,7 @@
     
     CAlfCompositionSource* iCompositionSource;    
     
-    CFbsBitmap* iSurfaceBitmap;
     CPeriodic* iDelayedInit;
-
     
     TBool iFirstTime;
 
--- a/classicui_plat/item_finder_api/inc/ItemFinder.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/item_finder_api/inc/ItemFinder.h	Tue May 11 16:27:42 2010 +0300
@@ -37,6 +37,7 @@
 class MAknItemFinderObserver;
 class CCoeEnv;
 class CCoeControl;
+class MTouchFeedback;
 
 // CLASS DECLARATION
 class MItemFinderObserver
@@ -395,6 +396,11 @@
          * Drag threshold
          */
         TInt iDragThreshold;
+
+        /**
+         * Tactile Feedback interface
+         */		
+        MTouchFeedback* iFeedback;
         
     };
 
--- a/classicui_plat/stylus_activated_popup_api/tsrc/inc/testdomstylusactivepopup.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/stylus_activated_popup_api/tsrc/inc/testdomstylusactivepopup.h	Tue May 11 16:27:42 2010 +0300
@@ -26,7 +26,7 @@
 #include <testclassassert.h>
 #include <eikenv.h>
 #include <e32std.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
 #include <aknstylusactivatedpopupcontent.h>
 
 #include "testdomstylusactivepopupcontainer.h"
--- a/classicui_pub/animation_api/tsrc/src/testsdkanimationblocks.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/animation_api/tsrc/src/testsdkanimationblocks.cpp	Tue May 11 16:27:42 2010 +0300
@@ -27,7 +27,7 @@
 #include <barsread.h>
 #include <coeaui.h>
 #include <avkon.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <testsdkanimation.rsg>
 
 #include "testsdkacontrol.h"
--- a/classicui_pub/buttons_api/inc/eikcba.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/buttons_api/inc/eikcba.h	Tue May 11 16:27:42 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"
@@ -950,6 +950,17 @@
      */
     void UpdateItemSpecificSoftkey( TBool aVisibleCollection = ETrue );
 
+    /**
+     * Updates RSK when multiple marking is activated or deactivated.
+     */
+    void UpdateMultipleMarkingSoftkey();
+    
+    /**
+     * Checks wheter softkey command change is allowed.
+     * 
+     * @return ETrue if softkey command change is allowed.
+     */    
+    TBool CommandChangeAllowed();
 
 private: // new methods
 
@@ -1007,11 +1018,6 @@
      * to CEikCbaButtons.
      */
     void BroadcastPostingTransparency( TBool aEnable );
-
-    /**
-    * Sets the CBA fading according to button content.
-    */
-    void SetFadeState();
     
     /**
      * A better version of AddCommandToStackL
--- a/classicui_pub/buttons_api/tsrc/src/testsdkbuttonsblockseikcba.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/buttons_api/tsrc/src/testsdkbuttonsblockseikcba.cpp	Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
 #include <stifparser.h>
 #include <stiftestinterface.h>
 #include <testsdkbuttons.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <avkon.hrh>
 #include <avkon.rsg>
 
--- a/classicui_pub/document_handler_api/tsrc/inc/testsdkdocumenthandlerobserver.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/document_handler_api/tsrc/inc/testsdkdocumenthandlerobserver.h	Tue May 11 16:27:42 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef C_TESTSDKDOCUMENTHANDLEROBSERVER_H
 #define C_TESTSDKDOCUMENTHANDLEROBSERVER_H
 
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 
 class CTestSDKDocumentHandlerObserver : public CBase,
                                         public MAknServerAppExitObserver
--- a/classicui_pub/editors_api/inc/EIKEDWIN.H	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/inc/EIKEDWIN.H	Tue May 11 16:27:42 2010 +0300
@@ -3057,6 +3057,13 @@
      *        context.
      */
     void DrawViewBackground( TBool aStart ) const;
+	
+	/**
+     * Returns ETrue if editor content fits to view rect.
+     *
+     * @return ETrue if editor content fits to view rect.
+     */
+	TBool ContentFitsToViewRect() const;
 
 protected:
 
--- a/classicui_pub/editors_api/tsrc/conf/tctestsdkeditorsedwin.cfg	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/conf/tctestsdkeditorsedwin.cfg	Tue May 11 16:27:42 2010 +0300
@@ -987,3 +987,8 @@
 title TestEEnableKineticScrollingL
 run testscripter c:\testframework\ui_testsdkeditorsedwin.cfg 199
 [Endtest]  
+
+[Test]
+title TestEEnableKineticScrollingPhysicsL
+run testscripter c:\testframework\ui_testsdkeditorsedwin.cfg 200
+[Endtest]
\ No newline at end of file
--- a/classicui_pub/editors_api/tsrc/conf/ui_testsdkeditorsedwin.cfg	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/conf/ui_testsdkeditorsedwin.cfg	Tue May 11 16:27:42 2010 +0300
@@ -2210,3 +2210,11 @@
 sendtobackground
 [Endtest]
 
+[Test]
+title TestEEnableKineticScrollingPhysicsL
+create testsdkeditors test
+bringtoforeground
+test TestEEnableKineticScrollingPhysicsL
+delete test
+sendtobackground
+[Endtest]
\ No newline at end of file
--- a/classicui_pub/editors_api/tsrc/group/testsdkeditors.mmp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/group/testsdkeditors.mmp	Tue May 11 16:27:42 2010 +0300
@@ -120,6 +120,7 @@
 LIBRARY         fbscli.lib
 LIBRARY         print.lib
 LIBRARY         apparc.lib
+LIBRARY         aknphysics.lib
 
 LANG            SC
 
--- a/classicui_pub/editors_api/tsrc/inc/testsdkeditors.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/inc/testsdkeditors.h	Tue May 11 16:27:42 2010 +0300
@@ -27,6 +27,7 @@
 #include <testclassassert.h>
 #include <fldbase.h>
 #include <flddef.h>
+#include <aknphysicsobserveriface.h>
 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <uikon/eikenvinterface.h>
 #endif //SYMBIAN_ENABLE_SPLIT_HEADERS
@@ -3203,6 +3204,30 @@
      */
     virtual TInt TestEEnableKineticScrollingL( CStifItemParser& aItem );
 
+    /**
+     * TPhysicsObserver test class for testing the
+     * kinetic scrolling feature of CEikEdwin.
+     */
+    NONSHARABLE_CLASS (TPhysicsObserver) : public MAknPhysicsObserver
+        {
+        public:
+
+        void ViewPositionChanged( const TPoint& aNewPosition,
+                                  TBool aDrawNow, TUint aFlags );
+        void PhysicEmulationEnded();
+        TPoint ViewPosition() const;
+        };
+
+    /**
+     * TestEEnableKineticScrollingPhysicsL test function for testing the
+     * kinetic scrolling feature of CEikEdwin.
+     *
+     * @since S60 5.2
+     * @param aItem never used
+     * @return Symbian OS error code.
+     */
+    virtual TInt TestEEnableKineticScrollingPhysicsL( CStifItemParser& aItem );
+
     //EikGTED.h
 /*                              class CEikGlobalTextEditor                  */
     /**
--- a/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocks.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocks.cpp	Tue May 11 16:27:42 2010 +0300
@@ -661,6 +661,7 @@
         ENTRY( "TestMFNETOEHandlePointerEventL", CTestSDKEditors::TestMFNETOEHandlePointerEventL ),
         ENTRY( "TestEikEdwinSmileyInputL", CTestSDKEditors::TestEikEdwinSmileyInputL ),       
         ENTRY( "TestEEnableKineticScrollingL", CTestSDKEditors::TestEEnableKineticScrollingL ),
+        ENTRY( "TestEEnableKineticScrollingPhysicsL", CTestSDKEditors::TestEEnableKineticScrollingPhysicsL ),
         };
 
     const TInt count = sizeof( KFunctions ) / sizeof( TStifFunctionInfo );
--- a/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocksedwin.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocksedwin.cpp	Tue May 11 16:27:42 2010 +0300
@@ -36,6 +36,7 @@
 #include <eikrted.h>
 #include <aknextendedinputcapabilities.h>
 #include <baclipb.h>
+#include <aknphysics.h>
 
 #include <testsdkeditors.rsg>
 
@@ -6027,3 +6028,127 @@
     return err;
     }
 
+
+// -----------------------------------------------------------------------------
+// CTestSDKEditors::TPhysicsObserver::ViewPositionChanged
+// -----------------------------------------------------------------------------
+//
+void CTestSDKEditors::TPhysicsObserver::ViewPositionChanged(
+    const TPoint& /*aNewPosition*/, TBool /*aDrawNow*/, TUint /*aFlags*/ )
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTestSDKEditors::TPhysicsObserver::PhysicEmulationEnded
+// -----------------------------------------------------------------------------
+//
+void CTestSDKEditors::TPhysicsObserver::PhysicEmulationEnded()
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTestSDKEditors::TPhysicsObserver::ViewPosition
+// -----------------------------------------------------------------------------
+//
+TPoint CTestSDKEditors::TPhysicsObserver::ViewPosition() const
+    {
+    TPoint point (0,0);
+    return point;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTestSDKEditors::TestEEnableKineticScrollingPhysicsL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKEditors::TestEEnableKineticScrollingPhysicsL( CStifItemParser&
+        /*aItem*/ )
+    {
+    CTestEditorsControl* control = CTestEditorsControl::NewL();
+    CleanupStack::PushL( control );
+    STIF_ASSERT_NOT_NULL( control );
+
+    CTestSDKEditorsEdwin* edwin = new ( ELeave ) CTestSDKEditorsEdwin;
+    CleanupStack::PushL( edwin );
+    STIF_ASSERT_NOT_NULL( edwin );
+    // Enable kinetic scrolling
+
+    TPhysicsObserver obs;
+    CAknPhysics* physics ( NULL );
+    STIF_ASSERT_TRUE ( CAknPhysics::FeatureEnabled() );
+
+    physics = CAknPhysics::NewL( obs, control );
+    CleanupStack::PushL( physics );
+
+    edwin->EnableKineticScrollingL( physics );
+    edwin->SetContainerWindowL( *control );
+
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TESTSDK_EDWIN );
+    edwin->ConstructFromResourceL( reader );
+    CleanupStack::PopAndDestroy();
+
+    // CreateLayoutL
+    CParaFormatLayer* paraFormatLayer = CParaFormatLayer::NewL();
+    CleanupStack::PushL( paraFormatLayer );
+    CCharFormatLayer* charFormatLayer = CCharFormatLayer::NewL();
+    CleanupStack::PushL( charFormatLayer );
+    CGlobalText * globalText =
+        CGlobalText::NewL( paraFormatLayer, charFormatLayer );
+    CleanupStack::PushL( globalText );
+    edwin->CreateLayoutL( globalText );
+    CleanupStack::Pop( globalText );
+    CleanupStack::Pop( charFormatLayer );
+    CleanupStack::Pop( paraFormatLayer );
+
+    edwin->CreateTextViewL();
+
+    // SetTextL
+    _LIT( KText, "one text" );
+    TBuf<KLength> text( KText );
+    edwin->SetTextL( &text );
+
+    edwin->ForceScrollBarUpdateL();
+    edwin->HandleSizeChangedL();
+
+    // Set selection
+    const TInt KSelectionPosition( 2 );
+    edwin->SetSelectionL( 0, KSelectionPosition );
+    TCursorSelection cursorSelection( 0, KSelectionPosition );
+    STIF_ASSERT_TRUE(
+            cursorSelection.iCursorPos == edwin->Selection().iCursorPos );
+    STIF_ASSERT_TRUE(
+            cursorSelection.iAnchorPos == edwin->Selection().iAnchorPos );
+    edwin->ClearSelectionL();
+    STIF_ASSERT_TRUE( 0 == edwin->Selection().iCursorPos );
+
+    edwin->MoveCursorL( TCursorPosition::EFRight, ETrue );
+    STIF_ASSERT_FALSE( edwin->IdleL( edwin ) );
+
+    // HandlePointerEventL
+    TPointerEvent event;
+    event.iType = TPointerEvent::EButton1Down;
+    edwin->HandlePointerEventL( event );
+
+    // HandleScrollEventL
+    CEikScrollBar* scrollBar = new ( ELeave ) CEikScrollBar;
+    CleanupStack::PushL( scrollBar );
+    STIF_ASSERT_NOT_NULL( scrollBar );
+    scrollBar->ConstructL( static_cast<MEikScrollBarObserver*>( edwin ),
+                           control,
+                           CEikScrollBar::EVertical,
+                           KLength,
+                           CEikScrollBar::EEikScrollBarDefaultBehaviour );
+    TAknDoubleSpanScrollBarModel doubleModel;
+    scrollBar->SetModel( &doubleModel );
+    edwin->HandleScrollEventL( scrollBar, EEikScrollThumbDragHoriz );
+    CleanupStack::PopAndDestroy( scrollBar );
+
+    CleanupStack::PopAndDestroy( physics );
+    CleanupStack::PopAndDestroy( edwin );
+    CleanupStack::PopAndDestroy( control );
+
+    return KErrNone;
+    }
--- a/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocksnumedwin.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocksnumedwin.cpp	Tue May 11 16:27:42 2010 +0300
@@ -19,11 +19,11 @@
 
 // [INCLUDE FILES]
 
-#include <aknnumedwin.h>
+#include <AknNumEdwin.h>
 #include <barsread.h>
 #include <coemain.h>
 #include <coeaui.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <akndef.h>
 #include <testsdkeditors.rsg>
 
--- a/classicui_pub/editors_api/tsrc/src/testsdkeditorsblockssecrettext.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/src/testsdkeditorsblockssecrettext.cpp	Tue May 11 16:27:42 2010 +0300
@@ -29,7 +29,7 @@
 #include <gulftflg.hrh>
 #include <prnsetup.h>
 #include <eikenv.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <aknutils.h>
 #include <gdi.h>
 #include <aknsbasicbackgroundcontrolcontext.h>
--- a/classicui_pub/hierarchical_lists_api/inc/akntreelist.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/hierarchical_lists_api/inc/akntreelist.h	Tue May 11 16:27:42 2010 +0300
@@ -24,6 +24,7 @@
 #include <w32std.h>
 #include <akntreelistobserver.h>
 #include <AknIconUtils.h> // TScaleMode
+#include <aknmarkingmodeobserver.h>
 
 class CAknTree;
 class CAknTreeListView;
@@ -920,6 +921,15 @@
      */
     IMPORT_C void SetEmptyTextL(const TDesC& aText);
 
+    /**
+     * Sets the marking mode observer.
+     *
+     * @since S60 5.2
+     * 
+     * @param aObserver Marking mode observer, @c NULL removes the existing
+     *                   observer.
+     */
+    IMPORT_C void SetMarkingModeObserver( MAknMarkingModeObserver* aObserver );
 
 // From base class CCoeControl
 
@@ -1009,6 +1019,15 @@
      */
     CCoeControl* ComponentControl( TInt aIndex ) const;
 
+    /**
+     * Returns the marking mode observer.
+     *
+     * @since S60 5.2
+     * 
+     * @return Pointer to the marking mode observer.
+     */
+    MAknMarkingModeObserver* MarkingModeObserver();
+    
 protected:
 
     /**
@@ -1133,6 +1152,10 @@
      */
     TInt iIndex;
 
+    /**
+     * Marking mode observer
+     */
+    MAknMarkingModeObserver* iMarkingModeObserver; 
     };
 
 
--- a/classicui_pub/hierarchical_lists_api/tsrc/src/testsdkhierarchicallistsblockstl.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/hierarchical_lists_api/tsrc/src/testsdkhierarchicallistsblockstl.cpp	Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
 #include <aknsinglestyletreelist.h>
 #include <akniconutils.h>
 #include <avkon.mbg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 
 #include "testsdkhierarchicallists.h"
 #include "testsdkhierarchicallistsordering.h"
--- a/classicui_pub/labels_api/tsrc/src/testsdklabelsblockslabel.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/labels_api/tsrc/src/testsdklabelsblockslabel.cpp	Tue May 11 16:27:42 2010 +0300
@@ -25,7 +25,7 @@
 #include <gdi.h>
 #include <barsread.h>
 #include <coeaui.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <eikappui.h>
 #include <eikenv.h>
 #include <aknpictographinterface.h> 
--- a/classicui_pub/labels_api/tsrc/src/testsdklabelslblocksfilename.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/labels_api/tsrc/src/testsdklabelslblocksfilename.cpp	Tue May 11 16:27:42 2010 +0300
@@ -20,7 +20,7 @@
 // [INCLUDE FILES]
 
 #include <eikfnlab.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <akndef.h>
 #include <coeaui.h>
 
--- a/classicui_pub/lists_api/group/bld.inf	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/group/bld.inf	Tue May 11 16:27:42 2010 +0300
@@ -43,3 +43,4 @@
 ../inc/EIKLBD.H     MW_LAYER_PUBLIC_EXPORT_PATH(eiklbd.h)
 ../inc/AknSelectionList.h     MW_LAYER_PUBLIC_EXPORT_PATH(aknselectionlist.h)
 ../inc/EIKLBO.H     MW_LAYER_PUBLIC_EXPORT_PATH(eiklbo.h)
+../inc/aknmarkingmodeobserver.h     MW_LAYER_PUBLIC_EXPORT_PATH(aknmarkingmodeobserver.h)
--- a/classicui_pub/lists_api/inc/EIKCLB.H	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/EIKCLB.H	Tue May 11 16:27:42 2010 +0300
@@ -199,15 +199,6 @@
 
 protected:
 
-    /**
-     * Draw the item background.
-     *
-     * Internal member, not intended for use.
-     *
-     * @param aRect Drawing area. 
-     */
-    void DrawCurrentItemRect(const TRect& aRect) const;
-	
     /** 
      * Array of properties.
      */
--- a/classicui_pub/lists_api/inc/EIKLBI.H	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/EIKLBI.H	Tue May 11 16:27:42 2010 +0300
@@ -326,7 +326,31 @@
         /**
          * This flag indicates that simley icon is enabled.
          */
-        EDrawSmileyIcon = 0x0100
+        EDrawSmileyIcon = 0x0100,
+
+        /**
+         * This flag indicates that marking mode is enabled.
+         */
+        EMarkingModeEnabled = 0x0200,
+
+        /**
+         * If set then itemdrawer draws the whole list area's background in one
+         * frame while scrolling. Normally background is drawn separately for
+         * each list item.
+         */
+        EDrawWholeBackground = 0x0400,
+        
+        /**
+         * Always set unless client application has implemented a custom item
+         * drawer that overrides background drawing code. 
+         */
+        ENativeImplementation = 0x0800,
+        
+        /**
+         * This flag is used during scrolling to indicate that background has
+         * been already drawn.
+         */
+        EBackgroundDrawn = 0x1000
         };
 
 public:
--- a/classicui_pub/lists_api/inc/EIKLBV.H	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/EIKLBV.H	Tue May 11 16:27:42 2010 +0300
@@ -846,6 +846,18 @@
      *         @c EFalse if it's not visible or fully visible.
      */
     IMPORT_C TBool ItemIsPartiallyVisible( TInt aItemIndex ) const;
+    
+    /**
+     * Resets the selection state so that there is nothing selected.
+     *
+     * @param  aDrawItems  Whether or not to draw the items which are
+     *                     deselected.
+     *
+     * @panic  EEikPanicListBoxNoSelIndexArray  Panics if selection indexes
+     *                                          have not been defined for
+     *                                          this class. 
+     */
+    void ClearSelection( TBool aDrawItems );
 
 protected:
 
--- a/classicui_pub/lists_api/inc/EIKLBX.H	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/EIKLBX.H	Tue May 11 16:27:42 2010 +0300
@@ -40,6 +40,7 @@
 class CMatchBuffer;
 class CListBoxExt;
 class CEikListBox;
+class MAknMarkingModeObserver;
 
 //  CLASS DECLARATION
 
@@ -1530,6 +1531,26 @@
      */
     IMPORT_C TBool IsHighlightEnabled();
     
+    /**
+     * Turns the marking mode on / off.
+     *
+     * @since S60 5.2
+     * 
+     * @param  aEnable @c ETrue to turn marking mode on
+     *                 @c EFalse to turn marking mode off
+     */
+    IMPORT_C void SetMarkingMode( TBool aEnable );
+
+    /**
+     * Sets the marking mode observer.
+     *
+     * @since S60 5.2
+     * 
+     * @param  aObserver Marking mode observer, @c NULL removes the existing
+     *                   observer.
+     */
+    IMPORT_C void SetMarkingModeObserver( MAknMarkingModeObserver* aObserver );
+    
 private:
     IMPORT_C virtual void CEikListBox_Reserved(); // listbox use only
     void HorizontalScroll(TInt aScrollAmountInPixels);
@@ -1573,6 +1594,24 @@
      */
     void UpdateHighlightL( TInt aItemIndex );
 
+    /**
+     * Checks whether marking mode is on or off.
+     *
+     * @since S60 5.2
+     * 
+     * @return @c ETrue if marking mode is on, otherwise @c EFalse
+     */
+    TBool MarkingMode() const;
+    
+    /**
+     * Returns the marking mode observer.
+     *
+     * @since S60 5.2
+     * 
+     * @return Pointer to the marking mode observer.
+     */
+    MAknMarkingModeObserver* MarkingModeObserver();
+    
 public:
     /**
      * Sets this control as visible or invisible.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_pub/lists_api/inc/aknmarkingmodeobserver.h	Tue May 11 16:27:42 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2009 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Marking mode observer interface.
+*
+*/
+
+#ifndef M_AKNMARKINGMODEOBSERVER_H
+#define M_AKNMARKINGMODEOBSERVER_H
+
+/**
+ * Collection observer.
+ *
+ * This interface is intended for those objects that are interested
+ * of collection state and need to receive collection notifications.
+ *
+ * @lib eikcoctl
+ * @since S60 v5.2
+ */
+class MAknMarkingModeObserver
+    {
+public:
+
+    /**
+     * This method is called when marking mode is activated or deactivated.
+     * 
+     * @param aActivated @c ETrue if marking mode was activate, @c EFalse
+     *                   if marking mode was deactivated.
+     */
+    virtual void MarkingModeStatusChanged( TBool aActivated ) = 0;
+
+    /**
+     * This method is called just before marking mode is closed. Client can 
+     * either accept or decline closing.
+     * 
+     * @return @c ETrue if marking mode should be closed, otherwise @c EFalse.
+     */
+    virtual TBool ExitMarkingMode() const = 0;
+    };
+
+#endif // M_AKNMARKINGMODEOBSERVER_H
--- a/classicui_pub/lists_api/inc/eikfrlb.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/eikfrlb.h	Tue May 11 16:27:42 2010 +0300
@@ -221,13 +221,6 @@
 protected:
     
     /**
-     * Draws current item rectangle.
-     * 
-     * @param aRect Current item rectangle.
-     */
-	void DrawCurrentItemRect(const TRect& aRect) const;
-
-    /**
      * @c WordWrapListItem is used with @c CAknDouble* style listboxes.
      * If listbox does not have 2nd line defined, @c WordWrapListItem
      * wraps 1st line to 2nd line, if text does not fit to 1st line.
--- a/classicui_pub/lists_api/inc/eikfrlbd.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/eikfrlbd.h	Tue May 11 16:27:42 2010 +0300
@@ -1061,37 +1061,6 @@
                               TBool aHighlight) const;
 
     /**
-     * Renders a settings animated highlight.
-     *
-     * @param aGc Graphics context used for drawing.
-     * @param aItemRect the area of the screen for drawing.
-     * @param aHighlight If @c ETrue highlight is rendered 
-     *        if @c EFalse, nothing is done.
-     */
-    void DrawSettingHighlight(CWindowGc &aGc,
-                              const TRect &aItemRect,
-                              TBool aHighlight) const;
-
-    /**
-     * Renders a popup animated highlight.
-     *
-     * @param aGc Graphics context used for drawing.
-     * @param aItemRect the area of the screen for drawing.
-     * @param aHighlight If @c ETrue highlight is rendered 
-     *        if @c EFalse, nothing is done.
-     */
-    void DrawPopupHighlight(CWindowGc &aGc,
-                            const TRect &aItemRect,
-                            TBool aHighlight) const;
-
-    /**
-     * Draws a popup frame.
-     *
-     * @param aGc Graphics context used for drawing.
-     */
-    void DrawPopupFrame(CWindowGc &aGc) const;
-
-    /**
      * Disables logical-to-visual conversion in subcells between indexes.
      *
      * @param aFirstIndex First subcell not to use logical-to-visual conversion.
--- a/classicui_pub/lists_api/tsrc/src/testsdklistsblockseikclbd.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/tsrc/src/testsdklistsblockseikclbd.cpp	Tue May 11 16:27:42 2010 +0300
@@ -29,8 +29,8 @@
 #include <stringloader.h>
 #include <avkon.hrh>
 #include <aknslistboxbackgroundcontrolcontext.h>
-#include <aknlayout2scalabledef.h>
-#include <aknsconstants.h>
+#include <AknLayout2ScalableDef.h>
+#include <AknsConstants.h>
 
 #include "testsdklists.h"
 #include "testsdkcontainer.h"
--- a/classicui_pub/misc_controls_api/inc/EIKCAPC.H	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/misc_controls_api/inc/EIKCAPC.H	Tue May 11 16:27:42 2010 +0300
@@ -35,7 +35,7 @@
 #include <eikdpage.h>
 
 #include <AknControl.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 
 class CEikImage ;
 class CEikDialogPage;
@@ -367,7 +367,7 @@
      * If the dialog instance is not registered, them flags set with SetFormFlags() are used. 
      */	
     void PositionFormComponents();
-    void ScrollBackEditor();
+    void ScrollBackEditorL();
     
 public:
     void DrawClosingLine() const;
--- a/classicui_pub/notes_api/tsrc/src/testsdknotesblocksand.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/notes_api/tsrc/src/testsdknotesblocksand.cpp	Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
 #include <coemain.h>
 #include <coeaui.h>
 #include <akndef.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <testsdknotes.rsg>
 #include <aknnotecontrol.h>
 
--- a/classicui_pub/notes_api/tsrc/src/testsdknotesblockseikprogi.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/notes_api/tsrc/src/testsdknotesblockseikprogi.cpp	Tue May 11 16:27:42 2010 +0300
@@ -21,7 +21,7 @@
 #include <coemain.h>
 #include <coeaui.h>
 #include <gulbordr.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <e32base.h>
 #include <s32mem.h>
 #include <testsdknotes.rsg>
--- a/classicui_pub/notes_api/tsrc/src/testsdknotesblockssdn.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/notes_api/tsrc/src/testsdknotesblockssdn.cpp	Tue May 11 16:27:42 2010 +0300
@@ -20,7 +20,7 @@
 #include <barsread.h>
 #include <coeaui.h>
 #include <akncontrol.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <testsdknotes.rsg>
 
 #include "testsdknotesstaticnotedialog.h"
--- a/classicui_pub/options_menu_api/inc/EIKMENUP.H	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/options_menu_api/inc/EIKMENUP.H	Tue May 11 16:27:42 2010 +0300
@@ -886,12 +886,14 @@
     static CEikMenuPane* NewItemCommandMenuL( MEikMenuObserver* aObserver );
 
     /**
-     * Sets item specific commands dimmed.
+     * Sets item specific commands state.
      * 
      * @internal
      * @since S60 v5.2
+     * @param aDimmed If ETrue, item specific commands are dimmed. If EFalse,
+     * other than item specific commands are dimmed.
      */
-    void SetItemCommandsDimmed();
+    void SetItemCommandsStateL( TBool aDimmed );
 
     /**
      * Adds menu items to this menu and item action menu data. 
@@ -910,12 +912,18 @@
      * @since S60 v5.2
      * @param aCascadeId Cascade menu id.
      * @param aItemSpecific If ETrue, adds only item specific items.
+     * @param aAddToItemActionMenu If ETrue, adds items to item action menu, 
+     * otherwise to iItemArray
      * @param aMenuData Item action menu data.
+     * @param aItemIndex specifies to which position to add submenu items, 
+     * used only when aAddToItemActionMenu is EFalse
      */
-    void AddCascadeMenuItemsToActionMenuL(
+    void AddCascadeMenuItemsToMenuL(
             TInt aCascadeId,
             TBool aItemSpecific,
-            CAknItemActionMenuData& aMenuData );
+            TBool aAddToItemActionMenu,
+            CAknItemActionMenuData* aMenuData = NULL,
+            TInt aItemIndex = 0 );
     
     /**
      * Enables the default highlight in menu
@@ -1086,7 +1094,12 @@
     CMenuScroller* iScroller;
     CEikButtonBase* iLaunchingButton; // for popouts only
     TInt iSubPopupWidth; // 0..2
-    TInt iSpare;
+
+    /**
+     * Used to track if object has been deleted while calling client callback.
+     */
+    TBool* iIsDeleted;
+
     CEikMenuPaneExtension* iExtension;
 
     };
--- a/classicui_pub/queries_api/inc/aknlistquerydialog.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/queries_api/inc/aknlistquerydialog.h	Tue May 11 16:27:42 2010 +0300
@@ -282,6 +282,13 @@
          */
         IMPORT_C CAknSearchField* FindBox() const;
         
+    private:
+        /**
+        * Returns whether the left softkey is shown
+        * @return ETrue If the left softkey is shown
+        */
+        TBool IsLeftSoftkeyShown();
+        
     public:
         /** 
          * Sets the tone for the dialog.
--- a/classicui_pub/searchfield_api/inc/aknsfld.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/searchfield_api/inc/aknsfld.h	Tue May 11 16:27:42 2010 +0300
@@ -282,7 +282,7 @@
     IMPORT_C void ShowAdaptiveSearchGrid() const;   
     
    /**
-    * Set column filter flag for adaptive search grid  
+    * Set column filter flag  
     * @since 5.0
     * @param aFlag The bit flag shows which columns take into account
     * during filtering.
@@ -290,7 +290,7 @@
     IMPORT_C void SetListColumnFilterFlags( const TBitFlags32 aFlag );
 
    /**
-    * Send column filter flag for adaptive search grid  
+    * Send column filter flag
     * @since 5.0
     * @return aFlag The bit flag shows which columns take into account
     * during filtering.
--- a/classicui_pub/server_application_api/tsrc/inc/testsdkappservice.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/server_application_api/tsrc/inc/testsdkappservice.h	Tue May 11 16:27:42 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 
 
 
--- a/classicui_pub/server_application_api/tsrc/inc/testsdkappservicebase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/server_application_api/tsrc/inc/testsdkappservicebase.h	Tue May 11 16:27:42 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 
 #ifndef C_TESTSDKAPPSERVICEBASE_H
 #define C_TESTSDKAPPSERVICEBASE_H
--- a/classicui_pub/server_application_api/tsrc/src/testsdkserverapplicationblocks.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/server_application_api/tsrc/src/testsdkserverapplicationblocks.cpp	Tue May 11 16:27:42 2010 +0300
@@ -20,7 +20,7 @@
 #include <e32svr.h>
 #include <stifparser.h>
 #include <stiftestinterface.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include <avkon.hrh>
 #include <aknenv.h>
 #include <documenthandler.h>
--- a/classicui_pub/setting_pages_api/inc/AknTextSettingPage.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/setting_pages_api/inc/AknTextSettingPage.h	Tue May 11 16:27:42 2010 +0300
@@ -30,7 +30,7 @@
 #include <eikdef.h>
 #include <eikedwin.h>
 #include "aknsettingpage.h"
-#include "aknnumedwin.h"
+#include "AknNumEdwin.h"
 
 /**
 * This class is an intermediate pure virtual class for all setting page classes that host 
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestappfrm/src/bctestaknapplication.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestappfrm/src/bctestaknapplication.cpp	Tue May 11 16:27:42 2010 +0300
@@ -21,7 +21,7 @@
 
 
 
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include <aknapp.h>
 #include <eikenv.h>
 #include <eikappui.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestdocandinit/inc/bctestDocAndInitcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestdocandinit/inc/bctestDocAndInitcase.h	Tue May 11 16:27:42 2010 +0300
@@ -29,7 +29,7 @@
 #include <documenthandler.h>
 #include <eikcolib.h>
 #include <eikctlib.h>
-#include <aknserverapp.h> 
+#include <AknServerApp.h> 
 
 #include "bctestcase.h"
 
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctesteditor/inc/bctesteditorcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctesteditor/inc/bctesteditorcase.h	Tue May 11 16:27:42 2010 +0300
@@ -31,7 +31,7 @@
 #include <Aknedsts.h>
 #include <aknipfed.h>
 #include <aknnumed.h>
-#include <aknnumedwin.h>
+#include <AknNumEdwin.h>
 #include <eikccpu.h>
 #include <eikedwin.h>
 #include <eikfpne.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlabelinfoindicators/src/bctestlabelinfoindicatorscase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlabelinfoindicators/src/bctestlabelinfoindicatorscase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -35,7 +35,7 @@
 #include <avkon.hrh>  
 #include <akninfopopupnotecontroller.h>     // CAknInfoPopupNoteController
 #include <gulalign.h>                       // TGulAlignmentValue
-#include <aknsconstants.h>                  // KAknsMessageSkinChange
+#include <AknsConstants.h>                  // KAknsMessageSkinChange
 #include <akndef.h>                         // KEikDynamicLayoutVariantSwitch
 #include <aknpictographinterface.h>         // CAknPictographInterface
 #include <e32debug.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
 #include <aknlists.h>
 #include <barsread.h>
 #include <akndef.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <eiktxlbm.h>
 #include <eikclbd.h>
 
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistformatbasecase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistformatbasecase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
 #include <aknlists.h>
 #include <barsread.h>
 #include <akndef.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <eiktxlbm.h>
 #include <eikfrlbd.h>
 
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestserverapp/inc/bctestserverappcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestserverapp/inc/bctestserverappcase.h	Tue May 11 16:27:42 2010 +0300
@@ -27,7 +27,7 @@
 #define BCTEST_SERVERAPPCASE_H
 
 #include "bctestcase.h"
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include <aknwseventobserver.h>
 
 //TUid Kmysimpleserver = { 0x06C22C0C	};
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestserverapp/src/bctestserverappcase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestserverapp/src/bctestserverappcase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -25,7 +25,7 @@
 
 #include <w32std.h>
 #include <coecntrl.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include <avkon.hrh>
 #include <aknwseventobserver.h>
 #include <aknBitmapAnimation.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.1/bctestmisc/src/bctestmisccase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.1/bctestmisc/src/bctestmisccase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
 #include <aknscreenmode.h>
 #include <aknappui.h>
 #include <bctestmisc.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <eikmenub.h>
 #include <aknutils.h>
 
--- a/classicui_pub/tsrc/bc/apps/S60_SDK5.0/bctesttouchpane/src/bctesttouchpanecase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK5.0/bctesttouchpane/src/bctesttouchpanecase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -29,7 +29,7 @@
 #include <aknappui.h>
 #include <akntouchpane.h>
 #include <bctesttouchpane.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <aknutils.h> 
 
 #include "bctesttouchpanecase.h"
--- a/classicui_pub/ui_framework_definitions_api/inc/EIKON.HRH	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/ui_framework_definitions_api/inc/EIKON.HRH	Tue May 11 16:27:42 2010 +0300
@@ -833,6 +833,7 @@
 #define EEikDialogFlagVirtualInput            0x800000
 // New flag for postponing the disappear effect after OkToExitL.
 #define EEikDialogFlagDelayEffects      0x01000000
+#define EEikDialogFlagNoEmbeddedSoftkeys      0x2000000
 
 
 #define EEikDlgItemNoSeparator          0
@@ -877,6 +878,7 @@
 #define EEikFormShowBitmaps         2
 #define EEikFormEditModeOnly        4
 #define EEikFormUseDoubleSpacedFormat   8
+#define EEikFormDisableHighlightInViewMode 16
 
 // EIKSPANE.HRH
 //
--- a/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh	Tue May 11 16:27:42 2010 +0300
@@ -381,7 +381,15 @@
         
     EChinFepCmdModePinyinPhrase,
     EChinFepCmdModeZhuyinPhrase,
-    EChinFepCmdModeStrokePhrase,    
+    EChinFepCmdModeStrokePhrase,
+
+    /**
+     * Command ids for multiple marking state.
+     */
+    EAknCmdMarkingModeEnter,
+    EAknCmdMarkingModeMarkOne,
+    EAknCmdMarkingModeMarkAll,
+    EAknCmdMarkingModeUnmarkAll,
 
     /**
     * @deprecated
--- a/classicui_pub/ui_framework_utilities_api/tsrc/src/testsdkuifwutilblocksaknutils.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/ui_framework_utilities_api/tsrc/src/testsdkuifwutilblocksaknutils.cpp	Tue May 11 16:27:42 2010 +0300
@@ -29,8 +29,8 @@
 #include <aknlists.h>
 #include <eikclbd.h>
 #include <aknsfld.h>
-#include <aknlayout2def.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2Def.h>
+#include <AknLayout2ScalableDef.h>
 #include <eikmfne.h>
 #include <eikseced.h>
 #include <aknfontspecification.h>
--- a/commonuis/CommonDialogs/loc/commondialogs.loc	Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonDialogs/loc/commondialogs.loc	Tue May 11 16:27:42 2010 +0300
@@ -208,3 +208,20 @@
 //l:list_set_graphic_pane_t1
 #define qtn_mem_memory_card_defaul_setting_list "%U: Memory card"
 
+//d:Text for USB Memory (no name) in memory selection
+//l:list_single_graphic_pane_t1_cp2
+#define qtn_memc_USB_available_single_list "%U USB memory"
+
+//d:Text for USB Memory in  memory selection when USB memory is unavilable
+//l:list_single_graphic_pane_t1_cp2
+#define qtn_memc_usb_unavailable_single_list "%U USB memory unavailable"
+
+//d:Text for USB Memory (no name) in memory selection
+//l:list_double_large_graphic_pane_t1_cp2
+#define qtn_memc_USB_available_double "%U USB memory"
+
+//d:Text for USB Memory in memory selection when USB memory is unavilable
+//l:list_double_large_graphic_pane_t1_cp2
+#define qtn_memc_usb_unavailable_double "%U USB memory unavailable"
+
+
--- a/commonuis/CommonUi/EABI/CommonUIU.DEF	Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonUi/EABI/CommonUIU.DEF	Tue May 11 16:27:42 2010 +0300
@@ -120,4 +120,5 @@
 	_ZN13CFindItemMenu21SetMenuItemVisibilityENS_9TMenuItemEi @ 119 NONAME
 	_ZN12MPBAiwNotify13HandleNotifyLEiiR20CAiwGenericParamListRKS0_ @ 120 NONAME
 	_ZN11CItemFinder22SetItemFinderObserverLEP22MAknItemFinderObserver @ 121 NONAME
+	_ZN15CFindItemDialog17EnableSingleClickEi @ 122 NONAME
 
--- a/commonuis/CommonUi/bwins/CommonUIU.def	Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonUi/bwins/CommonUIU.def	Tue May 11 16:27:42 2010 +0300
@@ -90,4 +90,5 @@
 	?SetMenuItemVisibility@CFindItemMenu@@QAEXW4TMenuItem@1@H@Z @ 89 NONAME ; void CFindItemMenu::SetMenuItemVisibility(enum CFindItemMenu::TMenuItem, int)
 	?HandleNotifyL@MPBAiwNotify@@UAEHHHAAVCAiwGenericParamList@@ABV2@@Z @ 90 NONAME ; int MPBAiwNotify::HandleNotifyL(int, int, class CAiwGenericParamList &, class CAiwGenericParamList const &)
 	?SetItemFinderObserverL@CItemFinder@@QAEXPAVMAknItemFinderObserver@@@Z @ 91 NONAME ; void CItemFinder::SetItemFinderObserverL(class MAknItemFinderObserver *)
+	?EnableSingleClick@CFindItemDialog@@QAEXH@Z @ 92 NONAME ; void CFindItemDialog::EnableSingleClick(int)
 
--- a/commonuis/CommonUi/group/CommonUI.mmp	Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonUi/group/CommonUI.mmp	Tue May 11 16:27:42 2010 +0300
@@ -163,5 +163,6 @@
 #endif
 
 LIBRARY         AknLayout2Scalable.lib
+LIBRARY         touchfeedback.lib
 
 // End of file.
--- a/commonuis/CommonUi/src/FindItemDialog.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonUi/src/FindItemDialog.cpp	Tue May 11 16:27:42 2010 +0300
@@ -95,6 +95,7 @@
 #include <aknnavilabel.h> // for changing the lable of navipane
 
 #include <AknTasHook.h> // for testability hooks
+#include <touchfeedback.h>
 _LIT( KResFileName, "z:\\resource\\finditemui.rsc" );
 
 // Panic
@@ -236,51 +237,50 @@
     }    
 
 NONSHARABLE_CLASS(CItemFinderExtension) : public CBase
-	{
+    {
 public: 
-	~CItemFinderExtension(); 
-	static CItemFinderExtension* NewL(); 
-	
-	//new function
+    ~CItemFinderExtension(); 
+    static CItemFinderExtension* NewL(); 
+
+    //new function
 public:
-	PBAiwNotify* CallBack();
-	
+    PBAiwNotify* CallBack();
+
 private: 
-	CItemFinderExtension(); 
-	void ConstructL();	
-	
+    CItemFinderExtension(); 
+    void ConstructL();	
+
 public:
-	PBAiwNotify iCallBack;
-	};
+    PBAiwNotify iCallBack;
+    };
 
 CItemFinderExtension::~CItemFinderExtension()
-	{
-	
-	}
+    {
+    }
 
 CItemFinderExtension* CItemFinderExtension::NewL()
-	{
-	CItemFinderExtension* self = new ( ELeave )CItemFinderExtension;
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop();
-	return self;
-	}
+    {
+    CItemFinderExtension* self = new ( ELeave )CItemFinderExtension;
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
 
 PBAiwNotify* CItemFinderExtension::CallBack()
-	{
-	return &iCallBack;
-	}
+    {
+    return &iCallBack;
+    }
 
 CItemFinderExtension::CItemFinderExtension()
-	{
-	
-	}
+    {
+
+    }
 
 void CItemFinderExtension::ConstructL()
-	{
-	
-	}
+    {
+
+    }
 
 
 
@@ -457,8 +457,126 @@
     iFindItemVoIPExtension = CFindItemVoIPExtension::NewL();
     
     iExtension = CItemFinderExtension::NewL();
+    iFeedback = MTouchFeedback::Instance();
+    }
+
+// -----------------------------------------------------------------------------
+// CFindItemDialog::HandlePointerEventL
+// -----------------------------------------------------------------------------
+//
+void CFindItemDialog::HandlePointerEventL( const TPointerEvent& aPointerEvent )
+    {
+    if ( !iSingleClick )
+        {
+        if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+            {
+            this->PointerEvent( NULL, aPointerEvent );
+            }
+        }
+    else
+        {
+        DoHandlePointerEventL( aPointerEvent );
+        if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+            {
+            iEdwin->ClearSelectionL();
+            iEdwin->DrawDeferred();
+            }
+        }
     }
 
+// -----------------------------------------------------------------------------
+// CFindItemDialog::DoHandlePointerEventL
+// -----------------------------------------------------------------------------
+//
+void CFindItemDialog::DoHandlePointerEventL ( const TPointerEvent& aPointerEvent )
+    {
+    if ( aPointerEvent.iType == TPointerEvent::EButton1Up ||
+             aPointerEvent.iType == TPointerEvent::EButton1Down )
+        {
+        TPoint tapPoint( aPointerEvent.iPosition - iTappingOffset );
+        TInt pos = 0;
+        TInt len = iEdwin->TextLayout()->PosRangeInBand( pos );
+        CFindItemEngine::SFoundItem item;
+        TRect rect;
+        TInt i = 0;
+        while ( i < iController->ItemCount() ) // Check visible rects
+            {
+            if ( !iController->Item( i, item ) ) // Get item.
+                {
+                break; // Error: invalid item.
+                }
+            TInt end = item.iStartPos + item.iLength - 1;
+            if ( end < pos )
+                {
+                i++;
+                continue; // item not visible.
+                }
+            TInt start = item.iStartPos;
+            if ( start >= ( pos + len ) )
+                {
+                break; // item not visible.
+                }
+            TInt lastLine = iEdwin->TextLayout()->GetLineNumber( end );
+            TInt nextLine = 0;
+            TInt lastPos = start;
+            do // Check all rects of one item.
+                {
+                TInt error = KErrNone;
+                TRAP( error, rect =
+                        iEdwin->TextLayout()->GetLineRectL( start, end ) );
+                if ( error == KErrNone )
+                    {
+                    if ( rect.Contains( tapPoint ) ) // Item rect tapped.
+                        {
+                        if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+                            {
+                            TRAP( error, iController->TappedItemL( i ) );
+                            // Change selection
+                            if ( error != KErrNone )
+                                {
+                                return; // Error: no selection made.
+                                }
+                            if ( iFeedback )
+                                {
+                                iFeedback->InstantFeedback( ETouchFeedbackBasicButton );	
+                                }
+                            iLastTappedItem = TPoint ( item.iStartPos, item.iLength
+                                + item.iStartPos );
+                            return; // Hit, no further handling.
+                            }
+                        else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+                            {
+                            if ( iLastTappedItem == TPoint ( item.iStartPos,
+                                item.iLength + item.iStartPos ) )
+                                {
+                                iIsSensitiveMenu = ETrue;
+                                iMenuBar->SetMenuType( CEikMenuBar::EMenuContext );
+                                TRAP_IGNORE( CAknDialog::DisplayMenuL() );
+                                }
+                            return; // Hit, no further handling.
+                            }
+                        }
+                    }
+                else
+                    {
+                    return; // Error: no rect.
+                    }
+                TPoint midPoint( rect.iBr.iX,
+                        ( rect.iBr.iY + rect.iTl.iY ) / 2 );
+                TRAP( error, lastPos =
+                        iEdwin->TextLayout()->XyPosToDocPosL( midPoint ) );
+                if ( error != KErrNone )
+                    {
+                    return; // Error: no last pos.
+                    }
+                start = lastPos + 1;
+                nextLine = iEdwin->TextLayout()->GetLineNumber( lastPos );
+                } while ( nextLine != lastLine );
+            i++;
+            }
+        }
+    return;   // No hit, no further handling.
+    }
 
 // -----------------------------------------------------------------------------
 // CFindItemDialog::DoCopyToClipboardL
@@ -826,12 +944,38 @@
     }
 
 // -----------------------------------------------------------------------------
+// CFindItemDialog::EnableSingleClick
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CFindItemDialog::EnableSingleClick ( TBool aEnable )
+    {
+    iSingleClick = aEnable;
+    }
+
 // CFindItemDialog::ProcessCommandL
 //  Prosesses menu commands
 // -----------------------------------------------------------------------------
 //
 EXPORT_C void CFindItemDialog::ProcessCommandL( TInt aCommandId )
     {
+    TBool selectionVisibility ( ETrue );
+    if ( iSingleClick && iEdwin && iEdwin->TextView() )
+        {
+        selectionVisibility = iEdwin->TextView()->SelectionVisible();
+        iEdwin->TextView()->SetSelectionVisibilityL( EFalse );
+
+        CFindItemEngine::SFoundItem item;
+        TBool founditem = iController->Item( item );
+        if ( founditem )
+            {
+            iEdwin->SetSelectionL( item.iStartPos, item.iStartPos + item.iLength );
+            }
+        else
+            {
+            iEdwin->SetSelectionL( iLastTappedItem.iX, iLastTappedItem.iY );
+            }
+        }
+
     CAknDialog::ProcessCommandL( aCommandId );
     switch (aCommandId)
         {
@@ -890,7 +1034,7 @@
            #ifndef RD_UNIFIED_EDITOR
            if( !iMMSFeatureSupported )
                {
-           	   mtmFilter->AppendL(KSenduiMtmMmsUid);
+               mtmFilter->AppendL(KSenduiMtmMmsUid);
                }
            #endif
            
@@ -915,7 +1059,7 @@
                    item.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin &&
                    iSearchCase == KSearchTelInternetNumber ) ) )
                {
-       	       mtmFilter->AppendL(KSenduiMtmSmtpUid);
+               mtmFilter->AppendL(KSenduiMtmSmtpUid);
                mtmFilter->AppendL(KSenduiMtmImap4Uid);
                mtmFilter->AppendL(KSenduiMtmPop3Uid);
                mtmFilter->AppendL(KSenduiMtmSyncMLEmailUid);
@@ -943,6 +1087,12 @@
             {
             if ( LaunchGenericUriL() )
                 {
+                if ( iSingleClick && iEdwin && iEdwin->TextView() )
+                    {
+                    iEdwin->TextView()->SetSelectionVisibilityL( selectionVisibility );
+                    iEdwin->ClearSelectionL();
+                    iEdwin->DrawDeferred();
+                    }
                 return;
                 }
             break;
@@ -1014,6 +1164,15 @@
             break;
             }
         }
+    if ( iSingleClick && iEdwin && iEdwin->TextView() )
+        {
+        iEdwin->TextView()->SetSelectionVisibilityL( selectionVisibility );
+        if ( aCommandId != EFindItemCmdNextItem && aCommandId != EFindItemCmdPrevItem )
+            {
+            iEdwin->ClearSelectionL();
+            }
+        iEdwin->DrawDeferred();
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -1031,15 +1190,23 @@
         }
 
     CFindItemEngine::SFoundItem item;
-    TBool founditem = iController->Item( item );
-
+    TBool foundItem = iController->Item( item );
+    if ( iSingleClick )
+        {
+        // foundItem remains as ETrue, if item found by controller is exactly
+        // same as highlighted selection
+        foundItem = foundItem && ( item.iLength == iEdwin->SelectionLength()
+                && item.iStartPos == Min( iEdwin->Selection().iCursorPos,
+                iEdwin->Selection().iAnchorPos ) );
+        }
+        
     if ( aMenuId == R_FINDITEM_CALLUI_AIW_SUBMENU )
         {
         if ( iFindItemVoIPExtension->IsVoIPSupported() &&
             ( iSearchCase ==
                 CFindItemEngine::EFindItemSearchMailAddressBin ||
             ( iSearchCase == KSearchTelInternetNumber &&
-            founditem && item.iItemType ==
+            foundItem && item.iItemType ==
                 CFindItemEngine::EFindItemSearchMailAddressBin ) ) )
             {
             CAiwGenericParamList* inList = CAiwGenericParamList::NewLC();
@@ -1123,11 +1290,49 @@
 
         aMenuPane->AddMenuItemsL( resource, EAknFormMaxDefault - 1, ETrue );
 
+        if ( iSingleClick && !foundItem )
+            {
+            switch ( resource )
+                {
+                case (R_FINDITEM_MAIL_ADDRESS_MENU):
+                    {
+                    aMenuPane->SetItemDimmed ( EFindItemCmdCopy, ETrue );
+                    aMenuPane->SetItemDimmed ( EFindItemSubMenuSend, ETrue );
+                    aMenuPane->SetItemDimmed ( EFindItemCmdCreateContactCard, ETrue );
+                    break;
+                    }
+
+                case (R_FINDITEM_URL_ADDRESS_MENU):
+                    {
+                    aMenuPane->SetItemDimmed ( EFindItemCmdGoToUrl, ETrue );
+                    aMenuPane->SetItemDimmed ( EFindItemCmdAddToBookmark, ETrue );
+                    aMenuPane->SetItemDimmed ( EFindItemCmdCreateContactCard, ETrue );
+                    aMenuPane->SetItemDimmed ( EFindItemCmdCopy, ETrue );
+                    break;
+                    }
+
+                case (R_FINDITEM_PHONENUMBER_MENU): // fall through
+                case (R_FINDITEM_TELINTERNETNUMBER_MENU):
+                    {
+                    aMenuPane->SetItemDimmed ( EFindItemCmdCall, ETrue );
+                    aMenuPane->SetItemDimmed ( EFindItemCmdCopy, ETrue );
+                    aMenuPane->SetItemDimmed ( EFindItemSubMenuSend, ETrue );
+                    aMenuPane->SetItemDimmed ( EFindItemCmdCreateContactCard, ETrue );
+                    break;
+                    }
+
+                default:
+                    {
+                    break;
+                    }
+                }
+            }
+
         if ( iSearchCase == KSearchTelInternetNumber &&
             iFindItemVoIPExtension->VoIPProfilesExistL() ||
             iSearchCase == KSearchTelInternetNumber &&
             !iFindItemVoIPExtension->VoIPProfilesExistL() &&
-            founditem &&
+            foundItem &&
             item.iItemType ==
                 CFindItemEngine::EFindItemSearchPhoneNumberBin ||
             iSearchCase & CFindItemEngine::EFindItemSearchMailAddressBin &&
@@ -1149,10 +1354,13 @@
             iSearchCase & CFindItemEngine::EFindItemSearchPhoneNumberBin &&
             !iHideCallMenu )
             {
-            aMenuPane->SetItemDimmed( EFindItemCmdCall, ETrue );
-            aMenuPane->AddMenuItemsL(
-                R_FINDITEM_CALLUI_AIW_ITEM,
-                EFindItemCmdCall );
+            if ( !iSingleClick || foundItem )
+                {
+                aMenuPane->SetItemDimmed( EFindItemCmdCall, ETrue );
+                aMenuPane->AddMenuItemsL(
+                    R_FINDITEM_CALLUI_AIW_ITEM,
+                    EFindItemCmdCall );
+                }
             }
 
         aMenuPane->DeleteMenuItem( EAknFormCmdEdit );
@@ -1162,14 +1370,20 @@
         aMenuPane->DeleteMenuItem( EAknFormCmdDelete );
 
 #ifndef RD_VIRTUAL_PHONEBOOK
-        iPbkDataSave->AddMenuItemsL(
-            aMenuPane,
-            EFindItemCmdCreateContactCard );
+        if ( !iSingleClick || foundItem )
+            {
+            iPbkDataSave->AddMenuItemsL(
+                aMenuPane,
+                EFindItemCmdCreateContactCard );
+            }
 #else
-        aMenuPane->SetItemDimmed( EFindItemCmdCreateContactCard, ETrue );
-        aMenuPane->AddMenuItemsL(
-            R_FINDITEM_CONTACTS_AIW_ITEM,
-            EFindItemCmdCreateContactCard );
+        if ( !iSingleClick || foundItem )
+            {
+            aMenuPane->SetItemDimmed( EFindItemCmdCreateContactCard, ETrue );
+            aMenuPane->AddMenuItemsL(
+                R_FINDITEM_CONTACTS_AIW_ITEM,
+                EFindItemCmdCreateContactCard );
+            }
 #endif // !RD_VIRTUAL_PHONEBOOK
 
         // Delete next/prev item items from menu if a last/next
@@ -1238,29 +1452,59 @@
     switch ( code )
         {
         case EKeyRightArrow:
+            if ( iSingleClick && !CurrentItemHasHighlight() )
+                {
+                HighlightCurrentItem();
+                break;
+                }
             iController->NextItemL();
             break;
         case EKeyDownArrow:
-            iController->MoveDownL();
+            if ( iSingleClick && !CurrentItemHasHighlight() )
+                {
+                HighlightCurrentItem();
+                break;
+                }
+            iController->MoveDownL();   
             break;
         case EKeyLeftArrow:
-            iController->PrevItemL();
+            if ( iSingleClick && !CurrentItemHasHighlight() )
+                {
+                HighlightCurrentItem();
+                break;
+                }
+            iController->PrevItemL();	
             break;
         case EKeyUpArrow:
+            if ( iSingleClick && !CurrentItemHasHighlight() )
+                {
+                HighlightCurrentItem();
+                break;
+                }
             iController->MoveUpL();
             break;
         case EKeyOK:
         case EKeyEnter:
+            if ( iSingleClick && !CurrentItemHasHighlight() )
+                {
+                HighlightCurrentItem();
+                break;
+                }
             iIsSensitiveMenu = ETrue;
             iMenuBar->SetMenuType(CEikMenuBar::EMenuContext);
             CAknDialog::DisplayMenuL();
             break;
         case EKeyPhoneSend:
+            if ( iSingleClick && !CurrentItemHasHighlight() )
+                {
+                HighlightCurrentItem();
+                break;
+                }
+
             if ( !iDialData )
                 {
                 break;
                 }
-
             CFindItemEngine::SFoundItem item;
             founditem = iController->Item( item );
 
@@ -1388,23 +1632,24 @@
     TRgb color;
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
     TInt error = AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors, 
-    												EAknsCIQsnTextColorsCG6 );
+        EAknsCIQsnTextColorsCG6 );
     if(error==KErrNone)
-    	{
-      	TCharFormat charFormat;
-    	TCharFormatMask charFormatMask;
-    	charFormatMask.SetAttrib(EAttColor);
-    	charFormat.iFontPresentation.iTextColor = color; 
-    
-    	CRichText * richText = NULL;
-    	richText = iEdwin->RichText();
-    	if( NULL!=richText )
-    		{
-    		TInt length = richText->DocumentLength();
-    		length++;
-    		// apply the color to text
-    		TRAP_IGNORE(richText->ApplyCharFormatL( charFormat, charFormatMask, 0, length ));
-    		}
+        {
+        TCharFormat charFormat;
+        TCharFormatMask charFormatMask;
+        charFormatMask.SetAttrib(EAttColor);
+        charFormat.iFontPresentation.iTextColor = color; 
+
+        CRichText * richText = NULL;
+        richText = iEdwin->RichText();
+        if( NULL!=richText )
+            {
+            TInt length = richText->DocumentLength();
+            length++;
+            // apply the color to text
+            TRAP_IGNORE(richText->ApplyCharFormatL( charFormat,
+                charFormatMask, 0, length ));
+            }
        	}
     if ( anyFound )
         {
@@ -1555,7 +1800,7 @@
         {
         return EFalse;
         }
-    TBool pos2 = EFalse;        
+    TBool pos2 = EFalse;
     TPoint point2;
     TRAP( error, pos2 = iEdwin->TextLayout()->DocPosToXyPosL( 
         aItem2, point2, CLayoutData::EFWholeTBoxesOnly ) );
@@ -1681,7 +1926,10 @@
         UpdateScrollIndicatorL();
 
         iEdwin->TextView()->SetSelectionVisibilityL( ETrue );
-        iEdwin->SetSelectionL( item.iStartPos, item.iLength + item.iStartPos );
+        if ( !iSingleClick )
+            {
+            iEdwin->SetSelectionL( item.iStartPos, item.iLength + item.iStartPos );
+            }
         }
     else
         {// Let's show a information note if no items were found
@@ -1807,17 +2055,17 @@
         KPosIndicator, iController->Position() + 1, iController->ItemCount() );
 
     if(NULL == iNaviDecorator)
-    	{
-    	iNaviDecorator = iNaviPane->CreateNavigationLabelL( naviText );
-       	iNaviDecorator->SetNaviDecoratorObserver( this );  
-       	iNaviDecorator->MakeScrollButtonVisible( ETrue );
-       	}
+        {
+        iNaviDecorator = iNaviPane->CreateNavigationLabelL( naviText );
+        iNaviDecorator->SetNaviDecoratorObserver( this );
+        iNaviDecorator->MakeScrollButtonVisible( ETrue );
+        }
     else
-    	{
-    	// Change the label on Nave pane control...
-    	CAknNaviLabel * label =( CAknNaviLabel* )iNaviDecorator->DecoratedControl();
-    	label->SetTextL(naviText);
-    	}
+        {
+        // Change the label on Nave pane control...
+        CAknNaviLabel * label =( CAknNaviLabel* )iNaviDecorator->DecoratedControl();
+        label->SetTextL(naviText);
+        }
 
     // Dimm arrows if needed
     if ( iController->LastItem() )
@@ -1936,10 +2184,10 @@
     {
 	//Update Horizantal Scroll bar color if skin changes
     if( aType == KAknsMessageSkinChange)
-    	{
-    	CAknScrollBar *scrollBar = iSBFrame->VerticalScrollBar();
-    	scrollBar->HandleResourceChange(aType);
-    	}
+        {
+        CAknScrollBar *scrollBar = iSBFrame->VerticalScrollBar();
+        scrollBar->HandleResourceChange(aType);
+        }
     CAknDialog::HandleResourceChange( aType );
     }
 
@@ -1978,7 +2226,7 @@
             {
             TRAP_IGNORE( iEdwin->MoveDisplayL( TCursorPosition::EFPageDown ) );
             }
-    	}
+        }
 
     TRAP_IGNORE( UpdateScrollIndicatorL() );
     }
@@ -2035,7 +2283,7 @@
     if ( AknLayoutUtils::PenEnabled() &&
         aPointerEvent.iType == TPointerEvent::EButton1Down )
         {
-        TPoint tapPoint( aPointerEvent.iPosition - iTappingOffset );        
+        TPoint tapPoint( aPointerEvent.iPosition - iTappingOffset );
         TInt pos = 0;
         TInt len = iEdwin->TextLayout()->PosRangeInBand( pos );
         CFindItemEngine::SFoundItem item;
@@ -2047,12 +2295,12 @@
                 {
                 break; // Error: invalid item.
                 };
-            TInt end = item.iStartPos + item.iLength - 1;                            
+            TInt end = item.iStartPos + item.iLength - 1;
             if ( end < pos )
                 {
                 i++;
-                continue; // item not visible.                
-                };                                            
+                continue; // item not visible.
+                };
             TInt start = item.iStartPos;
             if ( start >= ( pos + len ) )
                 {
@@ -2062,13 +2310,13 @@
             TInt nextLine = 0;
             TInt lastPos = start;
             do // Check all rects of one item.
-                {     
-                TInt error = KErrNone;                   
+                {
+                TInt error = KErrNone;
                 TRAP( error, rect = iEdwin->TextLayout()->GetLineRectL( start, end ) );
                 if ( error == KErrNone )
                     {
                     if ( rect.Contains( tapPoint ) ) // Item rect tapped.
-                        {                                    
+                        {
                         TRAP( error, iController->TappedItemL( i ) ); // Change selection
                         if ( error != KErrNone )
                             {
@@ -2083,15 +2331,15 @@
                 else
                     {
                     return false; // Error: no rect.
-                    }                                                    
+                    }
                 TPoint midPoint( rect.iBr.iX, ( rect.iBr.iY + rect.iTl.iY) / 2 );
-                TRAP( error, lastPos = iEdwin->TextLayout()->XyPosToDocPosL( midPoint ) );            
+                TRAP( error, lastPos = iEdwin->TextLayout()->XyPosToDocPosL( midPoint ) );
                 if ( error != KErrNone )
                     {
                     return false; // Error: no last pos.
                     }
                 start = lastPos + 1;
-                nextLine = iEdwin->TextLayout()->GetLineNumber( lastPos );                       
+                nextLine = iEdwin->TextLayout()->GetLineNumber( lastPos );
                 } while ( nextLine != lastLine ); 
             i++;
             }
@@ -2156,7 +2404,47 @@
         default:
             break;
         }    
-    }   
+    }
+
+// ----------------------------------------------------------------------------
+// CFindItemDialog::CurrentItemHasHighlight
+// ----------------------------------------------------------------------------
+//
+TBool CFindItemDialog::CurrentItemHasHighlight()
+    {
+    CFindItemEngine::SFoundItem item;
+    TBool foundItem = iController->Item( item );
+
+    // foundItem remains as ETrue, if item found by controller is exactly
+    // same as highlighted selection
+    
+    TCursorSelection selection( iEdwin->Selection() );
+    TInt selectionLength = iEdwin->SelectionLength();
+
+    foundItem = foundItem && ( ( item.iLength == selectionLength ) && ( item.iStartPos == Min( selection.iCursorPos, selection.iAnchorPos ) ) );
+
+    foundItem = foundItem && ( iEdwin && iEdwin->TextView()
+        && iEdwin->TextView()->SelectionVisible() );
+
+    return foundItem;
+    }
+
+// ----------------------------------------------------------------------------
+// CFindItemDialog::HighlightCurrentItem
+// ----------------------------------------------------------------------------
+//
+void CFindItemDialog::HighlightCurrentItem()
+    {
+    CFindItemEngine::SFoundItem item;
+    TBool found = iController->Item( item );
+
+    if ( found && iEdwin && iEdwin->TextView() )
+        {
+        iEdwin->TextView()->SetSelectionVisibilityL( ETrue );
+        iEdwin->SetSelectionL( item.iStartPos, item.iStartPos + item.iLength );
+        }
+    }
+
 
 //
 // CONTAINER CLASS
@@ -2242,24 +2530,24 @@
         TRgb color;
         MAknsSkinInstance* skin = AknsUtils::SkinInstance();
         TInt error = AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors, 
-        												EAknsCIQsnTextColorsCG6 );
+            EAknsCIQsnTextColorsCG6 );
         if(error==KErrNone)
-        	{
-           	TCharFormat charFormat;
-        	TCharFormatMask charFormatMask;
-        	charFormatMask.SetAttrib(EAttColor);
-        	charFormat.iFontPresentation.iTextColor = color; 
-     
-        	CRichText * richText = NULL;
-        	richText = iEditor->RichText();
-        	if( NULL!=richText )
-        		{
-        		TInt length = richText->DocumentLength();
-        		length++;
-        		// apply the color to the text
-        		TRAP_IGNORE(richText->ApplyCharFormatL( charFormat, charFormatMask, 0, length ));
-        		}
-           	}
+            {
+            TCharFormat charFormat;
+            TCharFormatMask charFormatMask;
+            charFormatMask.SetAttrib(EAttColor);
+            charFormat.iFontPresentation.iTextColor = color; 
+
+            CRichText * richText = NULL;
+            richText = iEditor->RichText();
+            if( NULL!=richText )
+                {
+                TInt length = richText->DocumentLength();
+                length++;
+                // apply the color to the text
+                TRAP_IGNORE(richText->ApplyCharFormatL( charFormat, charFormatMask, 0, length ));
+                }
+            }
         }
     }
 
--- a/commonuis/CommonUi/src/ItemFinder.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonUi/src/ItemFinder.cpp	Tue May 11 16:27:42 2010 +0300
@@ -29,6 +29,7 @@
 #include <txtfrmat.h>
 #include <AknUtils.h> // for AknUtils
 #include <AknsUtils.h>
+#include <touchfeedback.h>
 
 // scheme recog
 #include <ecom/ecom.h>
@@ -217,6 +218,7 @@
     CRichText::ActivateParserL(this);
     iSchemeResolver = CSchemeResolver::NewL();
     iMinDigitsToFind = GetMinDigitsToFindL(); // variated.
+    iFeedback = MTouchFeedback::Instance();
     }
 
 TInt CItemFinder::GetMinDigitsToFindL()
@@ -1290,6 +1292,10 @@
             // if no item was tapped remove selection
             if ( tapped )
                 {
+                if ( iFeedback )
+                    {
+                    iFeedback->InstantFeedback( ETouchFeedbackBasicButton );       
+                    }
                 iTapPoint = tapPoint;
                 }
             else
--- a/commonuisupport/uikon/srvsrc/EIKNFYSV.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuisupport/uikon/srvsrc/EIKNFYSV.CPP	Tue May 11 16:27:42 2010 +0300
@@ -988,6 +988,7 @@
 
 void CEikSrvNotifierManager::LookForNotifierInObservedListL(TUid aNotifierUid, TUid aChannelUid, RArray<TInt>& aNotifierPositions)
 	{
+    CleanupClosePushL(aNotifierPositions);
 	const TInt count = iObservedList->Count();
 	for (TInt ii = 0; ii < count; ii++)
 		{
@@ -996,6 +997,7 @@
 		if (info.iUid == aNotifierUid && (aChannelUid == KNonExistentUid || info.iChannel == aChannelUid))
 			User::LeaveIfError(aNotifierPositions.Append(ii));
 		}
+	CleanupStack::Pop(&aNotifierPositions);
 	}
 
 void CEikSrvNotifierManager::NotifierStartAndGetResponseL(TUid aNotifierUid, const TDesC8& aBuffer, TInt aReplySlot,
--- a/lafagnosticuifoundation/cone/src/COECNTSS.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/lafagnosticuifoundation/cone/src/COECNTSS.CPP	Tue May 11 16:27:42 2010 +0300
@@ -208,6 +208,7 @@
  @param aLogicalToPixelSizes TInt array to be poulated with font sizes */			
 EXPORT_C void CCoeControlStaticSettings::GetLogicalToPixelFontSizesL(RArray<TInt>& aLogicalToPixelSizes)
 	{
+    CleanupClosePushL(aLogicalToPixelSizes);
 	CCoeControlStaticSettings* self = Self();
 	aLogicalToPixelSizes.Reset();
 	
@@ -224,6 +225,7 @@
 	    User::LeaveIfError(aLogicalToPixelSizes.Append(22)); 
 	    User::LeaveIfError(aLogicalToPixelSizes.Append(26)); 
 		}
+	CleanupStack::Pop(&aLogicalToPixelSizes);
 	}
 	
 /**
--- a/lafagnosticuifoundation/cone/src/COEMAINSECUREFEP.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/lafagnosticuifoundation/cone/src/COEMAINSECUREFEP.CPP	Tue May 11 16:27:42 2010 +0300
@@ -74,6 +74,7 @@
 @param	aDisplayNames The array of FEP display names to be filled. May be passed as NULL if display names are not required.
 */
 	{
+    CleanupClosePushL(aUids);
 	aUids.Reset();
 	if(aDisplayNames)
 		{
@@ -93,6 +94,7 @@
 			}
 		}
 	CleanupStack::PopAndDestroy(&implementationArray);
+	CleanupStack::Pop(&aUids);
 	}
 
 EXPORT_C void CCoeEnv::InstallFepL(TUid aFepUid)
--- a/lafagnosticuifoundation/cone/src/CoeEnvExtra.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/lafagnosticuifoundation/cone/src/CoeEnvExtra.cpp	Tue May 11 16:27:42 2010 +0300
@@ -169,11 +169,13 @@
 void CCoeEnvExtra::AddObserverL(RArray<TAny*>& aArrayOfObservers, TAny* aObserver)
 	{
 	__ASSERT_ALWAYS(aObserver!=NULL, Panic(ECoePanicIllegalNullParameter3));
+	CleanupClosePushL(aArrayOfObservers);
 	for (TInt i=aArrayOfObservers.Count()-1; i>=0; --i)
 		{
 		__ASSERT_ALWAYS(aArrayOfObservers[i]!=aObserver, Panic(ECoePanicFocusObserverHasAlreadyBeenAdded));
 		}
 	User::LeaveIfError(aArrayOfObservers.Append(aObserver));
+	CleanupStack::Pop(&aArrayOfObservers);
 	}
 
 void CCoeEnvExtra::RemoveObserver(RArray<TAny*>& aArrayOfObservers, const TAny* aObserver)
--- a/lafagnosticuifoundation/uigraphicsutils/tulsrc/tulphonenumberutils.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/lafagnosticuifoundation/uigraphicsutils/tulsrc/tulphonenumberutils.cpp	Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
 _LIT(KContactCardCharsToParse, " ./");
 _LIT(KPhoneClientValidChars, "+1234567890()-pw#* ./");
 _LIT(KPhoneClientCharsToParse, "()- ./");
-_LIT(KSMSNumberValidChars, "+1234567890()- ./*");
+_LIT(KSMSNumberValidChars, "+1234567890()- ./*#");
 
 // DEFINES
 const TInt KPhoneNoUtilsMinNumbers  = 1;
--- a/ode/src/collision_kernel.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/ode/src/collision_kernel.cpp	Tue May 11 16:27:42 2010 +0300
@@ -978,6 +978,8 @@
 EXPORT_C void dInitODE()
 {
 #ifndef __WINSCW__
+    // clean up cached object if there is any.
+    dClearPosrCache();
     Mem::FillZ( GetGlobalData(), sizeof( TOdeStaticData ) );
     GetGlobalData()->autoEnableDepth = 2;
 #endif // !__WINSCW__
--- a/psln/PslnFramework/src/PslnFWBaseView.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/psln/PslnFramework/src/PslnFWBaseView.cpp	Tue May 11 16:27:42 2010 +0300
@@ -187,20 +187,27 @@
         if ( appUi )
             {
             CEikStatusPane* sp = appUi->StatusPane();
-            iNaviControlContainer = static_cast<CAknNavigationControlContainer*>
-                ( sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
+            if ( sp )
+                {
+                iNaviControlContainer = static_cast<CAknNavigationControlContainer*>
+                    ( sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
+                }
             }
         }
-    if ( iNaviPaneContext && ( aTabLocation > 0 ) )
+
+    if ( iNaviControlContainer )
         {
-        CAknTabGroup* tabGrp = static_cast <CAknTabGroup*>
-                    ( iNaviPaneContext->DecoratedControl() );
-        tabGrp->SetActiveTabByIndex( aTabLocation );
-        iNaviControlContainer->PushL( *iNaviPaneContext );
-        }
-    else
-        {
-        iNaviControlContainer->PushDefaultL();
+        if ( iNaviPaneContext && ( aTabLocation > 0 ) )
+            {
+            CAknTabGroup* tabGrp = static_cast <CAknTabGroup*>
+                        ( iNaviPaneContext->DecoratedControl() );
+            tabGrp->SetActiveTabByIndex( aTabLocation );
+            iNaviControlContainer->PushL( *iNaviPaneContext );
+            }
+        else
+            {
+            iNaviControlContainer->PushDefaultL();
+            }
         }
     PSLN_TRACE_DEBUG("CPslnFWBaseView::SetNaviPaneL w/ param END");
     }
--- a/psln/Rss/Psln.rss	Tue Apr 27 16:55:05 2010 +0300
+++ b/psln/Rss/Psln.rss	Tue May 11 16:27:42 2010 +0300
@@ -539,7 +539,7 @@
             {
             command = EPslnCmdAppChangeScreenSaver;
             txt = qtn_options_change;
-            flags = EEikMenuItemSpecific;
+            flags = EEikMenuItemAction;
             },
         MENU_ITEM
             {
@@ -798,7 +798,7 @@
             {
             command = EPslnCmdAppChangeWallpaper;
             txt = qtn_options_change;
-            flags = EEikMenuItemSpecific;
+            flags = EEikMenuItemAction;
             }
 #ifdef RD_SLIDESHOW_WALLPAPER
       ,
--- a/psln/Src/PslnScreenSaverView.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/psln/Src/PslnScreenSaverView.cpp	Tue May 11 16:27:42 2010 +0300
@@ -48,7 +48,7 @@
 
 // CONSTANTS
 // Number of default system screensavers.
-const TInt KPslnSystemScreenSavers = 2;
+const TInt KPslnSystemScreenSavers = 3;
 // Value in PubSub when screensaver preview is off.
 const TInt KPslnScreenSaverPreviewOff = 0;
 
@@ -426,6 +426,8 @@
             {
             // Remove Set screensaver, if current selection is already active.
             aMenuPane->SetItemDimmed( EPslnCmdAppSetScreenSaver, ETrue );
+            // Remove Settings which works exactly the same as Change
+            aMenuPane->SetItemDimmed( EPslnCmdAppSettings, ETrue );
             }
         else if ( IsApplyCommandVisibleL() )
             {
--- a/psln/pslnslidesetdialog/src/pslnslidesetdialog.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/psln/pslnslidesetdialog/src/pslnslidesetdialog.cpp	Tue May 11 16:27:42 2010 +0300
@@ -539,6 +539,7 @@
                     // If images is selected, start MGFetch.
                     if ( current != KPslnSlideSetRandomIndex )
                         {
+                        aSettingPage->MakeVisible( EFalse );
                         HandleLaunchMGFetchL();
                         }
                     else
--- a/uifw/AknGlobalUI/AknCapServer/src/AknMemoryCardDialogImpl.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/AknCapServer/src/AknMemoryCardDialogImpl.cpp	Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
 #include <aknmemorycardui.rsg>
 #include <StringLoader.h>
 #include <aknsoundsystem.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include "AknCapServerEntry.h"
 #include "AknCapServerDefs.h"
 #include "AknMemoryCardDialogImpl.h"
--- a/uifw/AknGlobalUI/NotifierWrapper/src/AknNotiferAppServerApplication.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/NotifierWrapper/src/AknNotiferAppServerApplication.cpp	Tue May 11 16:27:42 2010 +0300
@@ -36,7 +36,7 @@
 #include "AknNotiferAppServerApplicationInterface.h"
 
 #include <AknMediatorFacade.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <aknglobalpopupprioritycontroller.h>
 
 //---- Awkward, but declaring base classes otherwise in Akncapserver entry would break app fw.
--- a/uifw/AknGlobalUI/OldStyleNotif/Inc/AknNotifyPlugin.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Inc/AknNotifyPlugin.h	Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
 #include <AknPanic.h>
 #include <MediatorEventProvider.h>
 #include <MediatorDomainUIDs.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 
 class CAknIndicatorData;
 
--- a/uifw/AknGlobalUI/OldStyleNotif/Inc/AknSoftNotificationPlugin.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Inc/AknSoftNotificationPlugin.h	Tue May 11 16:27:42 2010 +0300
@@ -27,7 +27,7 @@
 #include <aknstaticnotedialog.h>
 #include <AknNotifyStd.h>
 #include <AknMediatorFacade.h> // Not the best for the purpose but will do just fine.
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <AknNotify.h>
 #include "AknSystemPopup.h"
 #include "AknGroupedNotifierNote.h"
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListMsgPopup.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListMsgPopup.cpp	Tue May 11 16:27:42 2010 +0300
@@ -35,7 +35,7 @@
 
 #include <AknMediatorFacade.h>
 #include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
  
 #include "AknAppsKeyCleanup.inl"
 
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp	Tue May 11 16:27:42 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	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp	Tue May 11 16:27:42 2010 +0300
@@ -49,7 +49,7 @@
 #include <AknMediatorFacade.h>
 #include <aknSDData.h>
 
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <AknsUtils.h>
 #include <aknglobalpopupprioritycontroller.h>
 #include "GlobalWindowPriorities.h"
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknkeylocknotifier.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknkeylocknotifier.cpp	Tue May 11 16:27:42 2010 +0300
@@ -33,7 +33,7 @@
 #include <aknnotecontrol.h>
 #include <aknlayoutscalable_avkon.cdl.h>
 
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <avkondomainpskeys.h> // KPSUidAvkonDomain, KAknKeyguardStatus, TAknKeyguardStatus
 #include <startupdomainpskeys.h> // KStartupSecurityCodeQueryStatus
 #include <coreapplicationuisdomainpskeys.h> // KCoreAppUIsAutolockStatus
@@ -1131,7 +1131,7 @@
 // Enable key lock.
 // ---------------------------------------------------------------------------
 //
-void CAknKeyLockControl::EnableKeylock( TBool aShowNote )
+void CAknKeyLockControl::EnableKeylock( TBool aShowNote, TBool aNotifySysApp )
     {
     TRACES( RDebug::Print(_L("(KeyGuard)CAknKeyLockControl::EnableKeylock %d"), aShowNote); )
 
@@ -1153,7 +1153,7 @@
                                             EKeyguardLocked );
     iKeyLockEnabled = ETrue;
 
-    if ( !iAutolockEnabled )
+    if ( !iAutolockEnabled && aNotifySysApp )
         {
         SendMessageToSysAp( EEikKeyLockEnabled );
         }
@@ -1208,23 +1208,23 @@
             }
         }
 
-		// in case Telephone-app is topmost, then the user is confused because he sees but can't use it.
-		// therefore it's required to hide it, by sending to background. ETMA-7M8A2Y 20090105
-		if ( AknLayoutUtils::PenEnabled() )
-       	{ 		
-	   			TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
-	   			#define KPhoneAppUid TUid::Uid(0x100058B3)
+        // in case Telephone-app is topmost, then the user is confused because he sees but can't use it.
+        // therefore it's required to hide it, by sending to background. ETMA-7M8A2Y 20090105
+        if ( AknLayoutUtils::PenEnabled() )
+            {
+            TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
+            #define KPhoneAppUid TUid::Uid(0x100058B3)
 
-     			TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
-     			if (apaTask.Exists())
-         	{
-				 		#if defined(_DEBUG)
-				 			RDebug::Print(_L("(KeyGuard)CAknKeyLockControl::EnableKeylock() Bring phone to background"));
-				 		#endif
-         		// Bring phone to background
-         		apaTask.SendToBackground();
-         	}
-				}
+            TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
+            if (apaTask.Exists())
+                {
+                #if defined(_DEBUG)
+                RDebug::Print(_L("(KeyGuard)CAknKeyLockControl::EnableKeylock() Bring phone to background"));
+                #endif
+                // Bring phone to background
+                apaTask.SendToBackground();
+                }
+            }
 
     // Start capturing system keys.
     CaptureSystemKeys();
@@ -1266,7 +1266,7 @@
 // Disable key lock.
 // ---------------------------------------------------------------------------
 //
-void CAknKeyLockControl::DisableKeylock()
+void CAknKeyLockControl::DisableKeylock(TBool aNotifySysApp)
     {
     TRACES( RDebug::Print(_L("(KeyGuard)CAknKeyLockControl::DisableKeylock")); )
 
@@ -1301,38 +1301,39 @@
     iStatusProperty.Set( EKeyguardNotActive );
     iKeyLockEnabled = EFalse;
 
-    if ( !iAutolockEnabled )	// only when Autolock was user-activated
+    if ( !iAutolockEnabled )    // only when Autolock was user-activated
         {
-		    // in case Telephone-app was topmost and sent to background, then the user is confused because he expects to see it again.
-				// therefore it's required to show it, by sending to foreground. 
-				if ( AknLayoutUtils::PenEnabled() )
-		     	{ 		
-    	    TInt callState;
-    	    RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
-    	    #if defined(_DEBUG)
-						RDebug::Printf( "%s %s (%u) callState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, callState );
-						RDebug::Printf( "%s %s (%u) EPSCTsyCallStateNone=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EPSCTsyCallStateNone );
-					#endif
-          if (callState != EPSCTsyCallStateNone )
-              {
-                	
-				   			TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
-				   			#define KPhoneAppUid TUid::Uid(0x100058B3)
-				
-				   			TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
-				   			if (apaTask.Exists())
-				       	{
-									RDebug::Printf( "%s %s (%u) foreground=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
-							 		#if defined(_DEBUG)
-							 			RDebug::Print(_L("(AUTOLOCK)CAknKeyLockControl::EnableKeylock() Send phone to foreground"));
-							 		#endif
-				       		// Bring phone to foreground
-				       		apaTask.BringToForeground();
-				       	}
-		       		}
-					}	// PenEnabled()
+        // in case Telephone-app was topmost and sent to background, then the user is confused because he expects to see it again.
+        // therefore it's required to show it, by sending to foreground. 
+        if ( AknLayoutUtils::PenEnabled() )
+            {       
+            TInt callState;
+            RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+            #if defined(_DEBUG)
+            RDebug::Printf( "%s %s (%u) callState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, callState );
+            RDebug::Printf( "%s %s (%u) EPSCTsyCallStateNone=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EPSCTsyCallStateNone );
+            #endif
+            if (callState != EPSCTsyCallStateNone )
+                {
+                TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
+                #define KPhoneAppUid TUid::Uid(0x100058B3)
+                TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
+                if (apaTask.Exists())
+                    {
+                    RDebug::Printf( "%s %s (%u) foreground=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+                    #if defined(_DEBUG)
+                    RDebug::Print(_L("(AUTOLOCK)CAknKeyLockControl::EnableKeylock() Send phone to foreground"));
+                    #endif
+                    // Bring phone to foreground
+                    apaTask.BringToForeground();
+                    }
+                }
+            }   // PenEnabled()
 
-        SendMessageToSysAp( EEikKeyLockDisabled );
+        if (aNotifySysApp)
+            {
+            SendMessageToSysAp( EEikKeyLockDisabled );
+            }
         }
     if ( iNotif )
         {
@@ -2393,13 +2394,13 @@
     // We'll have to disable keylock if we are changing autolock status.
     if ( IsKeyLockEnabled() && aAutoLockOn != iKeyLockControl->iAutolockEnabled )
         {
-        iKeyLockControl->DisableKeylock();
+        iKeyLockControl->DisableKeylock(EFalse);
         }
 
     if ( !IsKeyLockEnabled() )
         {
         iKeyLockControl->AutolockEnabled( aAutoLockOn );
-        iKeyLockControl->EnableKeylock();
+        iKeyLockControl->EnableKeylock(ETrue, EFalse);
         }
     }
 
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknmessagereaderlongpressdetector.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknmessagereaderlongpressdetector.cpp	Tue May 11 16:27:42 2010 +0300
@@ -461,22 +461,17 @@
             
             if (Layout_Meta_Data::IsLandscapeOrientation())
                 {
-                TAknWindowComponentLayout rightAreaLayout(
-                    AknLayoutScalable_Avkon::area_side_right_pane(0));
-                    
-                layoutRect.LayoutRect(
-                        containerRect,
-                        TAknWindowComponentLayout::Compose(
-                                    rightAreaLayout,
-                                    AknLayoutScalable_Avkon::sctrl_sk_bottom_pane()).LayoutLine());
-                
-                TRect bottomSKRect(layoutRect.Rect());
+                layoutRect.LayoutRect(containerRect,
+                        AknLayoutScalable_Avkon::popup_sk_window_g1(0));
 
-                layoutRect.LayoutRect(
-                        bottomSKRect,
-                        AknLayoutScalable_Avkon::aid_touch_sctrl_bottom().LayoutLine());
-                
-                button1Rect = layoutRect.Rect();
+                // Button widths are calculated based on cba area width
+                // margin width is taken from layout
+                TInt margin = layoutRect.Rect().iTl.iX - containerRect.iTl.iX;
+                TInt buttonWidth = (containerRect.Width() - margin * 2) / 2;
+                TSize buttonSize(buttonWidth, layoutRect.Rect().Height());
+
+                button1Rect = TRect(TPoint(containerRect.iTl.iX + margin,
+                        layoutRect.Rect().iTl.iY), buttonSize);
                 }
             else
                 {
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemconfirmationpopup.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemconfirmationpopup.cpp	Tue May 11 16:27:42 2010 +0300
@@ -35,7 +35,7 @@
 
 #include <AknMediatorFacade.h>
 #include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 
 const TInt KCharsInTInt = 4; // TInt32 takes 4 chars.
 
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemmsgpopup.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemmsgpopup.cpp	Tue May 11 16:27:42 2010 +0300
@@ -34,7 +34,7 @@
 #include <aknSDData.h>
 #include <AknMediatorFacade.h>
 #include <aknnoteattributes.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include "AknAppsKeyCleanup.inl"
 
 const TInt KCharsInTInt = 4; // TInt32 takes 4 chars.
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemprogresspopup.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemprogresspopup.cpp	Tue May 11 16:27:42 2010 +0300
@@ -38,7 +38,7 @@
 #include <aknlayoutscalable_avkon.cdl.h>
 #include <AknMediatorFacade.h>
 #include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include "AknAppsKeyCleanup.inl"
 
 const TInt KCharsInTInt = 4; // TInt32 takes 4 chars.
--- a/uifw/AknGlobalUI/cdma/notpisrc/aknkeylocknotifierCdma.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/cdma/notpisrc/aknkeylocknotifierCdma.cpp	Tue May 11 16:27:42 2010 +0300
@@ -41,7 +41,7 @@
 #include <aknlayout.lag>
 #include <aknutils.h>
 #include <eikcba.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <aknnotecontrol.h>
 #include <AknLayoutScalable_Avkon.cdl.h>
 
--- a/uifw/AvKon/aknhlist/BWINS/aknhlistU.def	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/BWINS/aknhlistU.def	Tue May 11 16:27:42 2010 +0300
@@ -73,4 +73,5 @@
 	?Sort@CAknTreeList@@QAEXPAVMAknCustomTreeOrdering@@W4TFocusBehaviour@1@H@Z @ 72 NONAME ; void CAknTreeList::Sort(class MAknCustomTreeOrdering *, enum CAknTreeList::TFocusBehaviour, int)
 	?SetEmptyTextL@CAknTreeList@@QAEXABVTDesC16@@@Z @ 73 NONAME ; void CAknTreeList::SetEmptyTextL(class TDesC16 const &)
 	?VisibleItemIndex@CAknTreeList@@QBEHH@Z @ 74 NONAME ; int CAknTreeList::VisibleItemIndex(int) const
+	?SetMarkingModeObserver@CAknTreeList@@QAEXPAVMAknMarkingModeObserver@@@Z @ 75 NONAME ; void CAknTreeList::SetMarkingModeObserver(class MAknMarkingModeObserver *)
 
--- a/uifw/AvKon/aknhlist/EABI/aknhlistU.def	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/EABI/aknhlistU.def	Tue May 11 16:27:42 2010 +0300
@@ -73,4 +73,5 @@
 	_ZNK12CAknTreeList16FocusedItemIndexEv @ 72 NONAME
 	_ZN12CAknTreeList13SetEmptyTextLERK7TDesC16 @ 73 NONAME
 	_ZNK12CAknTreeList16VisibleItemIndexEi @ 74 NONAME
+	_ZN12CAknTreeList22SetMarkingModeObserverEP23MAknMarkingModeObserver @ 75 NONAME
 
--- a/uifw/AvKon/aknhlist/group/aknhlist.mmp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/group/aknhlist.mmp	Tue May 11 16:27:42 2010 +0300
@@ -88,3 +88,4 @@
 LIBRARY         aknlistloadertfx.lib
 #endif //RD_UI_TRANSITION_EFFECTS_LIST
 DEFFILE                 aknhlist.def
+LIBRARY                 fbscli.lib
--- a/uifw/AvKon/aknhlist/inc/akntreelistview.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/inc/akntreelistview.h	Tue May 11 16:27:42 2010 +0300
@@ -29,6 +29,7 @@
 #include <akntreelistobserver.h>
 #include <akncollection.h>
 #include <aknlongtapdetector.h>
+#include <aknmarkingmodeobserver.h>
 
 #include "akntreeobserver.h"
 #include "akntreelistviewitem.h"
@@ -40,6 +41,7 @@
 class CEikScrollBarFrame;
 class CAknTreeListPhysicsHandler;
 class CAknItemActionMenu;
+class CAknIconArray;
 
 /**
  *  Hierarchical list view.
@@ -58,8 +60,8 @@
                                         public MAknsEffectAnimObserver,
                                         public MEikCommandObserver,
                                         public MAknCollection,
-                                        public MAknLongTapDetectorCallBack
-                                        
+                                        public MAknLongTapDetectorCallBack,
+                                        public MAknMarkingCollection
     {
 
 public:
@@ -813,23 +815,23 @@
     void DoHandleLongPressL();
 
     /**
-     * Enters marking mode. When in marking mode, the list controls the MSK
+     * Enters normal marking. When in marking state, the list controls the MSK
      * commands depending on whether the currently focused item is marked or
-     * unmarked. Marking mode is entered after specified timeout, when user
+     * unmarked. Marking state is entered after specified timeout, when user
      * keeps one of the marking modifier keys pressed.
      *
      * Notifications of the beginning and ending of marking mode is sent to
      * list observers, so that they would not update the MSK commands, when
      * they are handled by the list.
      */
-    void EnterMarkingMode();
+    void EnterMarking();
 
     /**
-     * Exits marking mode. Marking mode is exited when user releases
+     * Exits marking state. Marking state is exited when user releases
      * all the marking modifier keys. After that, the list no longer
      * handles the MSK commands.
      */
-    void ExitMarkingMode();
+    void ExitMarking();
 
     /**
      * Updates correct mark/unmark command to MSK depending on the marking
@@ -870,6 +872,10 @@
      */
 	void UpdateIndexes();
 	
+	/**
+	 * Loads marking mode icons.
+	 */
+    void LoadMarkingIconsL();
 	
 // from base class CCoeControl
 
@@ -894,8 +900,9 @@
      * Enables or disables highlight
      * 
      * @param ETrue to enable highlight, EFalse to disable
-     */
-    void EnableHighlight( TBool aEnabled );
+     * @param aPointerEnabled ETrue if highlight was enabled by pointer event.
+     */    
+    void EnableHighlight( TBool aEnabled, TBool aPointerEnabled = EFalse );
 
     /**
      * Is highlight enabled
@@ -922,7 +929,7 @@
      * 
      * @return ETrue if list has marked items
      */    
-    TBool HasMarkedItemsL();    
+    TBool HasMarkedItemsL() const;
     
 // From MAknCollection
     /**
@@ -948,6 +955,55 @@
      */    
     TInt CollectionExtension( TUint aExtensionId, TAny*& a0, TAny* a1 );    
 
+// From MAknMarkingCollection
+    /**
+     * Sets multiple marking state.
+     *
+     * @param aActive ETrue if multiple marking should be active.
+     */
+    void SetMultipleMarkingState( TBool aActive );
+
+    /**
+     * Returns the collection marking state. The state is combination of
+     * flags defined in @c TStateFlag. 
+     *
+     * @return  Collection state.
+     */
+    TUint MarkingState() const;
+
+    /**
+     * Marks the currently selected item.
+     */
+    void MarkCurrentItemL();
+     
+    /**
+     * Marks all items in the collection.
+     */
+    void MarkAllL(); 
+
+    /**
+     * Unmarks all items in the collection.
+     */
+    void UnmarkAll();
+    
+    /*
+     * Can current item be marked.
+     */
+    TBool CurrentItemMarkable();    
+
+    /**
+     * Returns whether the observer accepts ending of marking mode
+     * 
+     * @return ETrue if observer accepts exiting marking mode
+     */
+    TBool ExitMarkingMode();
+
+    /**
+     * Reports collection change event.
+     */    
+    void ReportCollectionChangedEvent();   
+
+
 // From MAknLongTapDetectorCallBack
     /**
      * Long tap detector callback 
@@ -1099,14 +1155,23 @@
 	 */
 	TBool iMirroredLayoutInUse;
 	
-
     /**
      * Remember pointer to bottom item. Use for drawing line seperator only.
      * iBottomIndex is not valid in some case becaue of iItems already changed.
      * Not own.
      */
 	CAknTreeItem* iBottomItem;	
+
+	/**
+	 * Whether marking mode is activated or not.
+	 */
+	TBool iMarkingMode;
+	
+	/**
+	 * Array for marking mode icons.
+	 * Own.
+	 */
+    CAknIconArray* iMarkingIconArray;
     };
 
-
 #endif // C_AKNTREELISTVIEW_H
--- a/uifw/AvKon/aknhlist/src/akntreelist.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/src/akntreelist.cpp	Tue May 11 16:27:42 2010 +0300
@@ -664,6 +664,17 @@
 
 
 // ---------------------------------------------------------------------------
+// CAknTreeList::SetMarkingModeObserver
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CAknTreeList::SetMarkingModeObserver( 
+        MAknMarkingModeObserver* aObserver )
+    {
+    iMarkingModeObserver = aObserver;
+    }
+
+
+// ---------------------------------------------------------------------------
 // Handles key events by mediating them to the view.
 // ---------------------------------------------------------------------------
 //
@@ -924,6 +935,16 @@
 
 
 // ---------------------------------------------------------------------------
+// Marking mode observer
+// ---------------------------------------------------------------------------
+//
+MAknMarkingModeObserver* CAknTreeList::MarkingModeObserver()
+    {
+    return iMarkingModeObserver;
+    }
+
+
+// ---------------------------------------------------------------------------
 // Does nothing, the draw request is mediated to the view through component
 // control structure.
 // ---------------------------------------------------------------------------
--- a/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp	Tue May 11 16:27:42 2010 +0300
@@ -163,7 +163,7 @@
             // flicking was ongoing when content stopped
             if ( iFeedback )
                 {
-                iFeedback->InstantFeedback( ETouchFeedbackBasic );
+                iFeedback->InstantFeedback( ETouchFeedbackList );
                 }
             wasFlicking = ETrue;
             }
@@ -326,23 +326,10 @@
             // also on up event -> play basic list feedback
             if ( iFeedback )
                  {
-                 TTouchLogicalFeedback fbType = ETouchFeedbackList;
                  if ( iItemToBeSelected != NULL )
                      {
-                     if ( iItemToBeSelected->IsLeaf() && iItemToBeSelected->IsMarkable() )
-                         {
-                         fbType = ETouchFeedbackCheckbox;
-                         }
-                     else if ( iItemToBeSelected->Node() != NULL )
-                         {
-                         if ( iItemToBeSelected->Node()->ChildCount() == 0 && 
-                                 iItemToBeSelected->Node()->IsMarkable() )
-                             {
-                             fbType = ETouchFeedbackCheckbox;
-                             }
-                         }
                      iFeedback->InstantFeedback( iTreeListView, 
-                                                 fbType,
+                                                 ETouchFeedbackList,
                                                  ETouchFeedbackVibra,
                                                  aPointerEvent );
                      }
--- a/uifw/AvKon/aknhlist/src/akntreelistview.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/src/akntreelistview.cpp	Tue May 11 16:27:42 2010 +0300
@@ -26,6 +26,9 @@
 #include <aknitemactionmenu.h>
 #include <AknTasHook.h> // for testability hooks
 #include <AknPriv.hrh>
+#include <AknIconArray.h>
+#include <avkon.mbg>
+#include <gulicon.h>
 #include "akntreelistview.h"
 #include "akntree.h"
 #include "akntreelist.h"
@@ -49,6 +52,8 @@
 // Number of additional items to draw
 const TInt KAdditionalItems = 2;
 
+// Space for check box in marking mode
+const TInt KCheckBoxOffset = 30;
 
 // Tree list view flag definitions.
 enum TAknTreeListViewFlags
@@ -58,7 +63,7 @@
     EFlagLooping,
     EFlagUpdateBackground,
     EFlagMarkingEnabled, // Marking of list items is enabled.
-    EFlagMarkingMode, // List in marking mode (MSK controlled by list). 
+    EFlagMarkingState, // List in marking state (MSK controlled by list).
     EFlagMark, // List items are being marked.
     EFlagUnmark, // List items are being unmarked.
     EFlagSimultaneousMarking, // Simultaneous marking ongoing.
@@ -112,6 +117,13 @@
         }
     delete iLongTapDetector;
 
+    if ( iMarkingIconArray )
+        {
+        iMarkingIconArray->ResetAndDestroy();
+        }
+
+    delete iMarkingIconArray;
+
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
     if ( CAknListLoader::TfxApiInternal( iGc ) )
         {
@@ -470,7 +482,21 @@
 //     
 void CAknTreeListView::SelectItem( CAknTreeItem* aSelectedItem )
     {
-    SelectItem( aSelectedItem, EFalse );
+    if ( iMarkingMode )
+        {
+        if ( aSelectedItem->IsMarkable() )
+            {
+            MarkItem( aSelectedItem, !aSelectedItem->IsMarked(), ETrue );
+            }
+        else if ( aSelectedItem->IsNode() )
+            {
+            SelectItem( aSelectedItem, EFalse );
+            }
+        }
+    else 
+        {
+        SelectItem( aSelectedItem, EFalse );
+        }
     }
 
 
@@ -787,6 +813,11 @@
     
     switch ( aType )
         {
+        case KEikMessageWindowsFadeChange:
+             {
+             ReportCollectionChangedEvent();
+             }        
+
         case KAknsMessageSkinChange:
             {
             TRAPD( error, CreateAnimationL() )
@@ -795,6 +826,8 @@
                 delete iAnimation;
                 iAnimation = NULL;
                 }
+
+            TRAP_IGNORE( LoadMarkingIconsL() );
             break;
             }
 
@@ -1308,6 +1341,7 @@
         }
     
     iMirroredLayoutInUse = AknLayoutUtils::LayoutMirrored();
+    LoadMarkingIconsL();
     }
 
 
@@ -1639,13 +1673,16 @@
     CAknTreeItem* item = FocusedItem();
     if ( item )
         {
-        if ( MarkingOngoing() )
+        if ( iMarkingMode )
             {
-            MarkItem( item, !item->IsMarked(), ETrue );
+            if ( item->IsMarkable() )
+                {
+                MarkItem( item, !item->IsMarked(), ETrue );
+                }
             }
         else
             {
-            SelectItem( item, true );
+            SelectItem( item, EFalse );
             }
         }
     }
@@ -1989,6 +2026,11 @@
         iterator.Previous();
         }
 
+    if ( iMarkingMode )
+        {
+        itemRect.iBr.iX -= KCheckBoxOffset;
+        }
+
     // Update items and their rectangles.
     for ( TInt ii = 0; ii < iItems.Count(); ++ii )
         {
@@ -2581,9 +2623,9 @@
         }
 
     // Exits marking mode.
-    if ( iFlags.IsSet( EFlagMarkingMode ) )
+    if ( iFlags.IsSet( EFlagMarkingState ) )
         {
-        ExitMarkingMode();
+        ExitMarking();
         }
 
     // Remove MSK observer.
@@ -2644,18 +2686,18 @@
 //
 void CAknTreeListView::DoHandleLongPressL()
     {
-    if ( iFlags.IsClear( EFlagMarkingMode ) )
+    if ( iFlags.IsClear( EFlagMarkingState ) )
         {
-        EnterMarkingMode();
+        EnterMarking();
         }
     }
 
 
 // ---------------------------------------------------------------------------
-// Enters marking mode.
+// Enters marking state.
 // ---------------------------------------------------------------------------
 //
-void CAknTreeListView::EnterMarkingMode()
+void CAknTreeListView::EnterMarking()
     {
     CEikButtonGroupContainer* bgc;
     CCoeControl* MSK = NULL;
@@ -2689,7 +2731,7 @@
             {
             ReportTreeListEvent( MAknTreeListObserver::EMarkingModeEnabled,
                 iTree.Id( FocusedItem() ) );
-            iFlags.Set( EFlagMarkingMode );
+            iFlags.Set( EFlagMarkingState );
             bgc->DrawNow();
             }
         }
@@ -2697,12 +2739,12 @@
 
 
 // ---------------------------------------------------------------------------
-// Exits marking mode.
+// Exits marking state.
 // ---------------------------------------------------------------------------
 //
-void CAknTreeListView::ExitMarkingMode()
+void CAknTreeListView::ExitMarking()
     {
-    if ( iFlags.IsSet( EFlagMarkingMode ) )
+    if ( iFlags.IsSet( EFlagMarkingState ) )
         {
         CEikButtonGroupContainer* bgc = NULL;
         CCoeControl* MSK = NULL;
@@ -2722,7 +2764,7 @@
             }
         ReportTreeListEvent( MAknTreeListObserver::EMarkingModeDisabled,
             iTree.Id( FocusedItem() ) );
-        iFlags.Clear( EFlagMarkingMode );
+        iFlags.Clear( EFlagMarkingState );
         }
     }
 
@@ -2768,8 +2810,7 @@
 void CAknTreeListView::DrawItemsWithPhysics( const TRect& aRect ) const
     {
     TBool empty = IsEmpty();
-    TInt offset = Offset();  
-
+    TInt offset = Offset();
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST    
     CWindowGc& gc = iGc && !empty ? *iGc : SystemGc();
 #else
@@ -2827,11 +2868,53 @@
                                    KAknsIIDQsnTextColors,
                                    EAknsCIQsnTextColorsCG6 );
 
+        if ( iMarkingMode && iMarkingIconArray && iMarkingIconArray->Count()== 2 )
+            {
+            // Set sizes for marking icon bitmaps
+            TRect drawRect; 
+            if ( iItems.Count() > 0 ) 
+                {
+                drawRect = iItems[0].Rect();
+                drawRect.iBr.iX += KCheckBoxOffset;
+                }
+
+            // Rect for the marking icon
+            TRect iconRect = RectFromLayout( drawRect,
+                    AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) );
+            iconRect.Move( 0, -offset );
+            
+            gc.SetPenColor( textColor );
+            gc.SetPenStyle( CGraphicsContext::ESolidPen );
+            
+            for ( TInt ii = 0; ii < iMarkingIconArray->Count(); ++ii )
+                {
+                CGulIcon* icon = (*iMarkingIconArray)[ii];
+                CFbsBitmap* bitmap = icon->Bitmap();
+
+                if ( bitmap )
+                    {
+                    TSize size( bitmap->SizeInPixels() ); // set size if not already
+                    TSize targetSize( iconRect.Size() );
+
+                    if ( size.iWidth != targetSize.iWidth && size.iHeight
+                            != targetSize.iHeight )
+                        {
+                        AknIconUtils::SetSize( bitmap, targetSize,
+                                EAspectRatioPreservedAndUnusedSpaceRemoved );
+                        }
+                    }
+                }
+            }
         const TInt itemCount = iItems.Count();
         for ( TInt ii = 0; ii < itemCount; ++ii )
             {
             TRect drawRect( iItems[ii].Rect() );
 
+            if ( iMarkingMode )
+                {
+                drawRect.iBr.iX += KCheckBoxOffset;
+                }
+
             if ( iItems[ii].Item() )
                 {
 
@@ -2875,6 +2958,30 @@
                     }
 #endif
 
+                if ( iMarkingMode && iMarkingIconArray && iMarkingIconArray->Count()== 2 )
+                    {
+                    // Rect for the marking icon
+                    TRect iconRect = RectFromLayout( drawRect,
+                        AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) );
+            
+                    iconRect.Move( 0, -offset );
+                    CGulIcon* icon = (*iMarkingIconArray)[1]; // unchecked
+
+                    TBool marked = ( iItems[ii].Item()->IsMarked() );
+                    if ( marked )
+                        {
+                        icon = (*iMarkingIconArray)[0];
+                        }
+
+                    CFbsBitmap* bitmap = icon->Bitmap();
+
+                    if ( bitmap )
+                        {
+                        gc.BitBltMasked( iconRect.iTl, bitmap, 
+                            iconRect.Size(), icon->Mask(), EFalse );
+                       }
+                    }
+
                 if ( iItems[ii].Item() != iBottomItem )
                     {
                     TRect offsetRect( drawRect );
@@ -2882,6 +2989,12 @@
                     AknListUtils::DrawSeparator( gc, offsetRect, textColor, skin );
                     }
 
+                if ( iMarkingMode )
+                    {
+                    gc.SetOrigin( TPoint( KCheckBoxOffset, 0 ) );
+                    drawRect.iBr.iX -= KCheckBoxOffset;
+                    }
+
                 TBool focused = ( FocusedItem() &&
                     iItems[ii].Item() == FocusedItem() );
 
@@ -2944,9 +3057,26 @@
                     }
 #endif //RD_UI_TRANSITION_EFFECTS_LIST
 
-                // Draw item.
-                iItems[ii].Draw( gc, iTree, drawRect, focused, iViewLevel,
-                    StructureLines(), Indention(), IndentionWidth() );
+                if ( iMarkingMode )
+                    {
+                    TBool marked = iItems[ii].Item()->IsMarked();
+                    if ( marked )
+                        {
+                        iItems[ii].Item()->SetMarked( EFalse );
+                        }           
+                    iItems[ii].Draw( gc, iTree, drawRect, focused, iViewLevel,
+                        StructureLines(), Indention(), IndentionWidth() );
+
+                    if ( marked )
+                        {
+                        iItems[ii].Item()->SetMarked( ETrue );
+                        }
+                    }
+                else
+                    {
+                    iItems[ii].Draw( gc, iTree, drawRect, focused, iViewLevel,
+                            StructureLines(), Indention(), IndentionWidth() );                
+                    }
 
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
                 if ( transApi )
@@ -2959,6 +3089,10 @@
                 }
 #endif //RD_UI_TRANSITION_EFFECTS_LIST
 
+                if ( iMarkingMode )
+                    {
+                    gc.SetOrigin( TPoint( 0, 0 ) );
+                    }
                 }
             }
         }
@@ -3070,8 +3204,11 @@
 // Enables or disables the highlight drawing
 // ---------------------------------------------------------------------------
 //
-void CAknTreeListView::EnableHighlight( TBool aEnabled )
+void CAknTreeListView::EnableHighlight( TBool aEnabled, 
+                                        TBool aPointerEnabled )
     {
+    TBool wasEnabled = iFlags.IsSet( EFlagHighlightEnabled );
+
     if ( aEnabled )
         {
         iFlags.Set( EFlagHighlightEnabled );
@@ -3080,6 +3217,13 @@
         {
         iFlags.Clear( EFlagHighlightEnabled );
         }
+
+    if ( !aPointerEnabled
+            && ( ( wasEnabled && !aEnabled )
+                    || ( !wasEnabled && aEnabled ) ) )
+        {
+        ReportCollectionChangedEvent();
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -3111,7 +3255,7 @@
 TUint CAknTreeListView::CollectionState() const
     {
     TUint state( 0 );
-    if ( IsVisible() )
+    if ( IsVisible() && ( !DrawableWindow() || !DrawableWindow()->IsFaded() ) )
         {
         state |= MAknCollection::EStateCollectionVisible;
         }
@@ -3119,6 +3263,12 @@
         {
         state |= MAknCollection::EStateHighlightVisible;
         }
+
+    if ( iList.Flags() & KAknTreeListMarkable )
+        {
+        state |= MAknCollection::EStateMultipleSelection;        
+        }
+
     return state;
     }
 
@@ -3137,12 +3287,174 @@
 // CAknTreeListView::CollectionExtension
 // -----------------------------------------------------------------------------
 //
-TInt CAknTreeListView::CollectionExtension( TUint /*aExtensionId*/,
-        TAny*& /*a0*/, TAny* /*a1*/ )
+TInt CAknTreeListView::CollectionExtension(
+        TUint aExtensionId, TAny*& a0, TAny* /*a1*/ )
     {
+    if ( aExtensionId == MAknMarkingCollection::TYPE )
+        {
+        a0 = static_cast<MAknMarkingCollection*>( this );
+        }
+
     return KErrNone;
     }
 
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::SetMultipleMarkingState
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::SetMultipleMarkingState( TBool aActive )
+    {
+    if ( iMarkingMode != aActive )
+        {
+        if ( !aActive )
+            {
+            TBool markedItems( EFalse );
+            TRAP_IGNORE( markedItems = HasMarkedItemsL() );
+            if ( markedItems )
+                {
+                UnmarkAll();
+                }
+            }
+        
+        EnableMarking( aActive );
+        iMarkingMode = aActive;
+        LayoutView();
+        DrawDeferred();
+
+        if ( iList.MarkingModeObserver() )
+            {
+            iList.MarkingModeObserver()->MarkingModeStatusChanged( aActive );
+            }
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::MarkingState
+// -----------------------------------------------------------------------------
+//
+TUint CAknTreeListView::MarkingState() const
+    {
+    TUint state( 0 );
+
+    if ( iMarkingMode )
+        {
+        state |= MAknMarkingCollection::EStateMarkingMode;
+
+        TBool markedItems ( EFalse );
+        TRAP_IGNORE( markedItems = HasMarkedItemsL() );
+        if ( markedItems )
+            {
+            state |= MAknMarkingCollection::EStateMarkedItems;
+            }
+        if ( iItems.Count() == 0 )
+            {
+            state |= MAknMarkingCollection::EStateCollectionEmpty;
+            }
+        }
+    return state;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::MarkCurrentItemL
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::MarkCurrentItemL()
+    {
+    if ( iMarkingMode && FocusedItem() && FocusedItem()->IsMarkable() )
+        {
+        MarkItem( FocusedItem(), ETrue, ETrue );
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::MarkAllL
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::MarkAllL()
+    {
+    if ( iMarkingMode )
+        {
+        TAknTreeIterator iterator = iTree.Iterator();
+        CAknTreeItem* item = NULL;
+        item = iterator.First(); 
+        while ( item && iterator.HasNext() )
+            {
+            if ( item->IsMarkable() )
+                {
+                MarkItem( item, ETrue, EFalse );
+                }
+            item = iterator.Next();
+            }
+        DrawDeferred(); 
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::UnmarkAll
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::UnmarkAll()
+    {
+    if ( iMarkingMode )
+        {
+        TAknTreeIterator iterator = iTree.Iterator();
+        CAknTreeItem* item = NULL;
+        item = iterator.First(); 
+        while ( item && iterator.HasNext() )
+            {
+            MarkItem( item, EFalse, EFalse );
+            item = iterator.Next();
+            }
+        DrawDeferred(); 
+        }
+    }
+
+
+ // -----------------------------------------------------------------------------
+// CAknTreeListView::CurrentItemMarkable
+// -----------------------------------------------------------------------------
+//
+TBool CAknTreeListView::CurrentItemMarkable()
+    {
+    if ( FocusedItem() && !FocusedItem()->IsMarkable() ) 
+        {
+        return EFalse;
+        }
+    return ETrue; 
+    }
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::ExitMarkingMode
+// -----------------------------------------------------------------------------
+//
+TBool CAknTreeListView::ExitMarkingMode()
+    {
+    if ( iList.MarkingModeObserver() )
+        {
+        return iList.MarkingModeObserver()->ExitMarkingMode();
+        }
+    return ETrue; 
+    }
+
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::ReportCollectionChangedEvent
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::ReportCollectionChangedEvent()
+    {
+    if ( iItemActionMenu )
+        {
+        iItemActionMenu->CollectionChanged( *this );
+        }
+    }
+
+
 // ---------------------------------------------------------------------------
 // CAknTreeListView::HandleLongTapEventL
 // ---------------------------------------------------------------------------
@@ -3186,7 +3498,7 @@
 // CAknTreeListView::HasMarkedItemsL
 // ---------------------------------------------------------------------------
 //
-TBool CAknTreeListView::HasMarkedItemsL()
+TBool CAknTreeListView::HasMarkedItemsL() const
     {
     RArray<TInt> selection;
     CleanupClosePushL( selection );
@@ -3265,3 +3577,43 @@
         } 
     }
 
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::LoadMarkingIconsL
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::LoadMarkingIconsL()
+    {
+    if ( !iMarkingIconArray )
+        {
+        iMarkingIconArray = new ( ELeave ) CAknIconArray( 2 );
+        }
+    else
+        {
+        iMarkingIconArray->ResetAndDestroy();
+        }
+
+    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+    const TDesC& avkonIconFile = AknIconUtils::AvkonIconFileName();
+
+    CGulIcon* icon = AknsUtils::CreateGulIconL( skin, 
+            KAknsIIDQgnPropCheckboxOn, 
+            avkonIconFile, 
+            EMbmAvkonQgn_prop_checkbox_on, 
+            EMbmAvkonQgn_prop_checkbox_on_mask );
+    
+    CleanupStack::PushL( icon );
+    iMarkingIconArray->AppendL( icon );
+    CleanupStack::Pop( icon );
+
+    icon = AknsUtils::CreateGulIconL( skin, 
+            KAknsIIDQgnPropCheckboxOff, 
+            avkonIconFile, 
+            EMbmAvkonQgn_prop_checkbox_off, 
+            EMbmAvkonQgn_prop_checkbox_off_mask );
+
+    CleanupStack::PushL( icon );
+    iMarkingIconArray->AppendL( icon );
+    CleanupStack::Pop( icon );
+    }
+
--- a/uifw/AvKon/aknphysics/src/aknphysics.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknphysics/src/aknphysics.cpp	Tue May 11 16:27:42 2010 +0300
@@ -426,7 +426,15 @@
                                           const TTime& aStartTime )
     {
     // Check that world really exists
-    if ( !iEngine || !iEngine->WorldExists() )
+    if ( iEngine )
+        {
+        if ( ( !iLandscape && iWorldSize.iHeight <= iViewSize.iHeight ) ||
+                ( iLandscape && iWorldSize.iWidth <= iViewSize.iWidth ) )
+            {
+            return EFalse;
+            }
+        }
+    else
         {
         return EFalse;
         }
@@ -544,6 +552,14 @@
 //
 EXPORT_C void CAknPhysics::RegisterPanningPosition( const TPoint& aDelta )
     {
+    TInt viewSize = !iLandscape ? iViewSize.iHeight : iViewSize.iWidth;
+    TInt worldSize = !iLandscape ? iWorldSize.iHeight : iWorldSize.iWidth;
+    
+    if ( worldSize <= viewSize )
+        {
+        return;
+        }
+	
     TTimeIntervalMicroSeconds time;
     TInt err( KErrNone );
     if ( iNullThread.Handle() )
@@ -589,7 +605,8 @@
     iPanningDrawOmitted = !drawNow;
     
     TPoint position( iObserver.ViewPosition() );
-    position += aDelta;
+    
+    TPoint movement( aDelta );
 
     if ( iRestrictor && iRestrictor->AllowedViewPosition( position ) )
         {
@@ -602,6 +619,23 @@
                 iEngine->StartFpsLogging();
                 }
             }
+
+        // reduce movement if content is dragged over boundaries
+        if ( OngoingPhysicsAction() == EAknPhysicsActionDragging )
+            {
+            TInt currentPosition = !iLandscape ? position.iY : position.iX;
+            TInt* movementPtr = !iLandscape ? &movement.iY : &movement.iX;
+        
+            TInt top = viewSize / 2;
+            TInt bottom = worldSize - top;
+            
+            if ( currentPosition < top || currentPosition > bottom )
+                {
+                *movementPtr /= 2;
+                }
+            }
+
+        position += movement;
         
         NotifyViewPositionChanged( position, drawNow );
         
--- a/uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp	Tue May 11 16:27:42 2010 +0300
@@ -319,7 +319,8 @@
         }
 
     if ( aEvent->iType == TPointerEvent::EButton1Up && 
-         iPhysics->IsPanningDrawOmitted() )
+         iPhysics->IsPanningDrawOmitted() && 
+         eventTarget == ETargetViewControl )
         {
         // Ensure that the last panning position gets drawn if the last
         // view redraw was omitted due to too high CPU use.
--- a/uifw/AvKon/group/avkon_icons_dc.mk	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/group/avkon_icons_dc.mk	Tue May 11 16:27:42 2010 +0300
@@ -136,7 +136,7 @@
           $(OLDURELZDIR)\resource\apps\aknmemorycardui.mif \
           $(OLDUDEBZDIR)\resource\apps\aknmemorycardui.mbm \
           $(OLDURELZDIR)\resource\apps\aknmemorycardui.mbm \
-	  ..\avkon2mifheader\avkon2mifheader_inst.cpp
+	  ..\Avkon2Mifheader\avkon2mifheader_inst.cpp
 
 FREEZE : ;
 
--- a/uifw/AvKon/group/bld.inf	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/group/bld.inf	Tue May 11 16:27:42 2010 +0300
@@ -18,6 +18,7 @@
 
 #include <platform_paths.hrh>
 
+
 PRJ_EXPORTS
 
 // OEM headers - not in SDK!
@@ -46,29 +47,39 @@
 ../conf/s60/avkon_102858F2.crml           APP_LAYER_CRML(avkon_102858F2.crml)
 ../conf/s60/testability_2001844B.crml     APP_LAYER_CRML(testability_2001844B.crml)
 
-mif2cdlindex.xml         /epoc32/tools/makefile_templates/s60/mif2cdindex.xml
-mif2cdlindex.flm          /epoc32/tools/makefile_templates/s60/mif2cdlindex.flm
-mif2cdlindex.meta       /epoc32/tools/makefile_templates/s60/mif2cdlindex.meta
+mif2cdlindex.xml	/epoc32/tools/makefile_templates/s60/mif2cdindex.xml
+mif2cdlindex.flm	/epoc32/tools/makefile_templates/s60/mif2cdlindex.flm
+mif2cdlindex.meta	/epoc32/tools/makefile_templates/s60/mif2cdlindex.meta
+
+smiley.mbg		/epoc32/include/smiley.mbg
 
-../srcdata/avkonsystemsounds/volume_min.wav                  /epoc32/data/z/resource/avkonsystemsounds/volume_min.wav
-../srcdata/avkonsystemsounds/volume_max.wav                  /epoc32/data/z/resource/avkonsystemsounds/volume_max.wav
-../srcdata/avkonsystemsounds/battery_low.wav                  /epoc32/data/z/resource/avkonsystemsounds/battery_low.wav
-../srcdata/avkonsystemsounds/default_beep.wav                  /epoc32/data/z/resource/avkonsystemsounds/default_beep.wav
-../srcdata/avkonsystemsounds/battery_dead.wav                 /epoc32/data/z/resource/avkonsystemsounds/battery_dead.wav
+smiley.mif		/epoc32/data/z/resource/apps/smiley.mif
+smiley.mif		/epoc32/release/winscw/udeb/z/resource/apps/smiley.mif
+smiley.mif		/epoc32/release/winscw/urel/z/resource/apps/smiley.mif
+smiley.mif		/epoc32/release/armv5/udeb/Z/resource/apps/smiley.mif
+smiley.mif		/epoc32/release/armv5/urel/z/resource/apps/smiley.mif
 
-../srcdata/avkonsystemsounds/volume_min.wav                  /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/volume_min.wav
-../srcdata/avkonsystemsounds/volume_max.wav                  /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/volume_max.wav
-../srcdata/avkonsystemsounds/battery_low.wav                  /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/battery_low.wav
-../srcdata/avkonsystemsounds/default_beep.wav                  /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/default_beep.wav
-../srcdata/avkonsystemsounds/battery_dead.wav                  /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/battery_dead.wav
+../srcdata/AvkonSystemSounds/volume_min.wav		/epoc32/data/z/resource/avkonsystemsounds/volume_min.wav
+../srcdata/AvkonSystemSounds/volume_max.wav		/epoc32/data/z/resource/avkonsystemsounds/volume_max.wav
+../srcdata/AvkonSystemSounds/battery_low.wav		/epoc32/data/z/resource/avkonsystemsounds/battery_low.wav
+../srcdata/AvkonSystemSounds/default_beep.wav		/epoc32/data/z/resource/avkonsystemsounds/default_beep.wav
+../srcdata/AvkonSystemSounds/battery_dead.wav		/epoc32/data/z/resource/avkonsystemsounds/battery_dead.wav
 
-../srcdata/avkonsystemsounds/volume_min.wav                  /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/volume_min.wav
-../srcdata/avkonsystemsounds/volume_max.wav                  /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/volume_max.wav
-../srcdata/avkonsystemsounds/battery_low.wav                  /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/battery_low.wav
-../srcdata/avkonsystemsounds/default_beep.wav                  /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/default_beep.wav
-../srcdata/avkonsystemsounds/battery_dead.wav                  /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/battery_dead.wav
+../srcdata/AvkonSystemSounds/volume_min.wav		/epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/volume_min.wav
+../srcdata/AvkonSystemSounds/volume_max.wav		/epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/volume_max.wav
+../srcdata/AvkonSystemSounds/battery_low.wav		/epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/battery_low.wav
+../srcdata/AvkonSystemSounds/default_beep.wav		/epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/default_beep.wav
+../srcdata/AvkonSystemSounds/battery_dead.wav		/epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/battery_dead.wav
+
+../srcdata/AvkonSystemSounds/volume_min.wav		/epoc32/release/winscw/urel/z/resource/avkonsystemsounds/volume_min.wav
+../srcdata/AvkonSystemSounds/volume_max.wav		/epoc32/release/winscw/urel/z/resource/avkonsystemsounds/volume_max.wav
+../srcdata/AvkonSystemSounds/battery_low.wav		/epoc32/release/winscw/urel/z/resource/avkonsystemsounds/battery_low.wav
+../srcdata/AvkonSystemSounds/default_beep.wav		/epoc32/release/winscw/urel/z/resource/avkonsystemsounds/default_beep.wav
+../srcdata/AvkonSystemSounds/battery_dead.wav		/epoc32/release/winscw/urel/z/resource/avkonsystemsounds/battery_dead.wav
+
 
 PRJ_MMPFILES
+
 // Specify the .mmp files required for building the important component releasables.
 // Note that you should specify any .mmp files for test programs further down the file.
 //
@@ -117,7 +128,7 @@
 END
 
 START EXTENSION s60/mif2cdlindex
-OPTION TARGETFILE Avkon2mifheader_inst.cpp
+OPTION TARGETFILE avkon2mifheader_inst.cpp
 OPTION GENPATH ../Avkon2MifHeader
 OPTION MIFFILE avkon2.mif
 // OPTION MIFDIR armv5 uses $(EPOCROOT)epoc32/data/Z/resource/apps and for winscw uses $(EPOCROOT)epoc32/release/winscw/$(CFG)/z/resource/apps
@@ -137,11 +148,11 @@
 OPTION SOURCEFILE Iconlist3.txt
 END
 
-START EXTENSION s60/mifconv
-OPTION TARGETFILE smiley.mif
-OPTION HEADERFILE smiley.mbg
-OPTION SOURCEFILE smileyiconlist2.txt
-END
+//START EXTENSION s60/mifconv
+//OPTION TARGETFILE smiley.mif
+//OPTION HEADERFILE smiley.mbg
+//OPTION SOURCEFILE smileyiconlist2.txt
+//END
 
 #endif
 #endif
--- a/uifw/AvKon/group/mif2cdlindex.flm	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/group/mif2cdlindex.flm	Tue May 11 16:27:42 2010 +0300
@@ -6,7 +6,7 @@
 # The file destinations  relative to EPOCROOT
 
 ## Parameters that are expected:
-# TARGETFILE Avkon2mifheader_inst.cpp
+# TARGETFILE avkon2mifheader_inst.cpp
 # GENPATH 
 # MIFFILE avkon2.mif
 # DLLNAME Avkon2MifHeader
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/group/smiley.mbg	Tue May 11 16:27:42 2010 +0300
@@ -0,0 +1,58 @@
+
+/* This file has been generated, DO NOT MODIFY. */
+enum TMifSmiley
+	{
+	EMbmSmileyQgn_indi_switch_smiley2 = 16384,
+	EMbmSmileyQgn_indi_switch_sct2 = 16386,
+	EMbmSmileyQgn_indi_smiley_angry = 16388,
+	EMbmSmileyQgn_indi_smiley_bigsmile = 16390,
+	EMbmSmileyQgn_indi_smiley_cry = 16392,
+	EMbmSmileyQgn_indi_smiley_evil = 16394,
+	EMbmSmileyQgn_indi_smiley_eyebrows = 16396,
+	EMbmSmileyQgn_indi_smiley_heart = 16398,
+	EMbmSmileyQgn_indi_smiley_irritated = 16400,
+	EMbmSmileyQgn_indi_smiley_kissing = 16402,
+	EMbmSmileyQgn_indi_smiley_nerd = 16404,
+	EMbmSmileyQgn_indi_smiley_neutral = 16406,
+	EMbmSmileyQgn_indi_smiley_pirate = 16408,
+	EMbmSmileyQgn_indi_smiley_sarcastic = 16410,
+	EMbmSmileyQgn_indi_smiley_sarcastic_mad = 16412,
+	EMbmSmileyQgn_indi_smiley_smile = 16414,
+	EMbmSmileyQgn_indi_smiley_spring = 16416,
+	EMbmSmileyQgn_indi_smiley_suprised = 16418,
+	EMbmSmileyQgn_indi_smiley_tongue = 16420,
+	EMbmSmileyQgn_indi_smiley_unhappy = 16422,
+	EMbmSmileyQgn_indi_smiley_verycool = 16424,
+	EMbmSmileyQgn_indi_smiley_wink = 16426,
+	EMbmSmileyQgn_indi_smiley_wink_grin = 16428,
+	EMbmSmileyQgn_indi_smiley_wondering = 16430,
+	EMbmSmileyQgn_indi_smiley_coffee = 16432,
+	EMbmSmileyQgn_indi_smiley_connive = 16434,
+	EMbmSmileyQgn_indi_smiley_denial = 16436,
+	EMbmSmileyQgn_indi_smiley_flirt = 16438,
+	EMbmSmileyQgn_indi_smiley_frustrated = 16440,
+	EMbmSmileyQgn_indi_smiley_gum = 16442,
+	EMbmSmileyQgn_indi_smiley_idea = 16444,
+	EMbmSmileyQgn_indi_smiley_innocent = 16446,
+	EMbmSmileyQgn_indi_smiley_laugh = 16448,
+	EMbmSmileyQgn_indi_smiley_party = 16450,
+	EMbmSmileyQgn_indi_smiley_run = 16452,
+	EMbmSmileyQgn_indi_smiley_silly = 16454,
+	EMbmSmileyQgn_indi_smiley_sleep = 16456,
+	EMbmSmileyQgn_indi_smiley_surprised = 16458,
+	EMbmSmileyQgn_indi_smiley_anim_coffee = 16460,
+	EMbmSmileyQgn_indi_smiley_anim_connive = 16462,
+	EMbmSmileyQgn_indi_smiley_anim_denial = 16464,
+	EMbmSmileyQgn_indi_smiley_anim_flirt = 16466,
+	EMbmSmileyQgn_indi_smiley_anim_frustrated = 16468,
+	EMbmSmileyQgn_indi_smiley_anim_gum = 16470,
+	EMbmSmileyQgn_indi_smiley_anim_idea = 16472,
+	EMbmSmileyQgn_indi_smiley_anim_innocent = 16474,
+	EMbmSmileyQgn_indi_smiley_anim_laugh = 16476,
+	EMbmSmileyQgn_indi_smiley_anim_party = 16478,
+	EMbmSmileyQgn_indi_smiley_anim_run = 16480,
+	EMbmSmileyQgn_indi_smiley_anim_silly = 16482,
+	EMbmSmileyQgn_indi_smiley_anim_sleep = 16484,
+	EMbmSmileyQgn_indi_smiley_anim_surprised = 16486,
+	EMbmSmileyLastElement
+	};
Binary file uifw/AvKon/group/smiley.mif has changed
--- a/uifw/AvKon/notifsrc/AknSDData.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/notifsrc/AknSDData.cpp	Tue May 11 16:27:42 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <s32mem.h>
 #include "aknSDData.h"
 
--- a/uifw/AvKon/src/AknAdaptiveSearchGrid.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknAdaptiveSearchGrid.cpp	Tue May 11 16:27:42 2010 +0300
@@ -499,22 +499,6 @@
         AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EControlPane,
                                            controlPaneRect );
         currentWindowRect.iBr.iY = controlPaneRect.iTl.iY;
-        
-        TRect mainPaneRect;
-        AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane,
-                                           mainPaneRect );
-        
-        if ( 0 != iFindpaneRect.Size().iWidth 
-                && iFindpaneRect.Size().iWidth <= mainPaneRect.Size().iWidth )
-            {
-            currentWindowRect.iBr.iX = currentWindowRect.iTl.iX 
-                                        + iFindpaneRect.Size().iWidth;
-            }
-        else
-            {
-            currentWindowRect.iBr.iX = currentWindowRect.iTl.iX 
-                                        + mainPaneRect.Size().iWidth;
-            }
         }
         
     TRect grid_pane = RectFromLayout( currentWindowRect, AknLayoutScalable_Apps::grid_afind_pane( iLayoutOption ) );
@@ -1163,24 +1147,15 @@
         TPointerEvent& pointerEvent = *aEvent.Pointer();
         
         if( pointerEvent.iType == TPointerEvent::EButton1Down ) 
-            {     
-        if ( !iFindpaneRect.Contains( pointerEvent.iPosition ) &&
-            aDestination != this )     
-                {  
-            MTouchFeedback* feedback = MTouchFeedback::Instance();
-            
-            // according to Touch UI spec tapping on input frame should cause feedback, 
-            // even if action is to cancel dialog..
-            if ( feedback )
+            {
+            if ( !iFindpaneRect.Contains( pointerEvent.iPosition ) &&
+                aDestination != this )
                 {
-                feedback->InstantFeedback( this, ETouchFeedbackBasic );
+                HideL();
+                return;
                 }
-                
-                HideL();
-                return;                          
-                }                             
-            }   
-        }                     
+            }
+        }
     }
         
        
--- a/uifw/AvKon/src/AknAppUi.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknAppUi.cpp	Tue May 11 16:27:42 2010 +0300
@@ -69,7 +69,7 @@
 #include <gfxtranseffect/gfxtranseffect.h>
 
 #include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 #include <startupdomainpskeys.h>
 
 #include "transitionmanager.h"
@@ -1809,6 +1809,12 @@
 
 EXPORT_C void CAknAppUi::PrepareToExit()
     {
+    // Hide application toolbar to prevent it from showing 
+    // after views are deleted    
+    if ( CurrentFixedToolbar() )
+        {
+        CurrentFixedToolbar()->SetToolbarVisibility( EFalse );   
+        }
     if( IsForeground() && Document() )
         {
         //only if focused, otherwise next app HandleForeground may never come.
--- a/uifw/AvKon/src/AknCharMap.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknCharMap.cpp	Tue May 11 16:27:42 2010 +0300
@@ -584,7 +584,7 @@
 void CAknSctNaviButton::SetFocused(TBool aState)
     {
     iButtonControl->SetFocus(aState);
-    iButtonControl->DrawNow();
+    iButtonControl->DrawDeferred();
     }
 
 void CAknSctNaviButton::SetEnabled(TBool aState)
@@ -1753,7 +1753,7 @@
 void CAknSctCategoryButton::SetFocused(TBool aState)
     {
     iButtonControl->SetFocus(aState);
-    iButtonControl->DrawNow();
+    iButtonControl->DrawDeferred();
     }
 
 
@@ -2962,7 +2962,10 @@
     iPictographCases.Close();
     iPictographPages.Close();
     MTouchFeedback* feedback = MTouchFeedback::Instance();
-    feedback->RemoveFeedbackForControl( this );
+    if ( feedback != NULL )
+        {
+        feedback->RemoveFeedbackForControl( this );
+        }
    }
 
 void CAknCharMap::DoLayout()
--- a/uifw/AvKon/src/AknCheckBoxSettingPage.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknCheckBoxSettingPage.cpp	Tue May 11 16:27:42 2010 +0300
@@ -146,15 +146,21 @@
 
     CreateCheckBoxBitmapsL();
 
+    // Only a reference to the CBase object; not owned
+    CAknSetStyleListBox* listBox = ListBoxControl();
+
+	//
+	// SelectItemL make the view item drawn by default, SetDisableRedraw can remove flick
+	//
+	TBool bRedrawDisabled = listBox->View()->RedrawDisabled();
+	listBox->View()->SetDisableRedraw( ETrue );
     GenerateInternalArrayAndGiveToListBoxL();
+	listBox->View()->SetDisableRedraw( bRedrawDisabled );
 
     // This updates the CBA
     CheckAndSetDataValidity();
     UpdateCbaL();
 
-    // Only a reference to the CBase object; not owned
-    CAknSetStyleListBox* listBox = ListBoxControl();
-
     listBox->SetListBoxObserver(this);
 
     // Set the scroller indication to appear when needed
--- a/uifw/AvKon/src/AknIndicatorContainer.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknIndicatorContainer.cpp	Tue May 11 16:27:42 2010 +0300
@@ -1158,6 +1158,16 @@
 
                     CAknSmallIndicator* indicatorNotifier = CAknSmallIndicator::NewLC( TUid::Uid( 0 ) );
                     indicatorNotifier->HandleIndicatorTapL();
+                    //for indicator popup event
+                    MTouchFeedback* feedback = MTouchFeedback::Instance();
+                    if ( feedback )
+                        {
+                        feedback->InstantFeedback(
+                                           this,
+                                           ETouchFeedbackPopUp,
+                                           ETouchFeedbackVibra,
+                                           aPointerEvent );
+                        }
                     CleanupStack::PopAndDestroy( indicatorNotifier );
                     }
 
@@ -4058,9 +4068,8 @@
             }
         }
 
-    if ( indicator &&
-         indicator->IndicatorState() ||
-         indicator->Priority() != KIndicatorNotShown )
+    if (indicator && (indicator->IndicatorState() || 
+            indicator->Priority()!= KIndicatorNotShown))
         {
         SizeChanged();
         DrawDeferred();
--- a/uifw/AvKon/src/AknInfoPopupNote.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknInfoPopupNote.cpp	Tue May 11 16:27:42 2010 +0300
@@ -472,7 +472,8 @@
              || aPointerEvent.iType == TPointerEvent::EButton1Up
              || aPointerEvent.iType == TPointerEvent::EDrag )
             {
-            if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+            Hide();
+            if ( aPointerEvent.iType == TPointerEvent::EButton1Down && !IsVisible() )
                 {
                 MTouchFeedback* feedback = MTouchFeedback::Instance();
                 if ( feedback )
@@ -481,7 +482,6 @@
                     }
                 }
 
-            Hide();
             SetPointerCapture( EFalse ); 
             }
         }
--- a/uifw/AvKon/src/AknNoteDialog.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknNoteDialog.cpp	Tue May 11 16:27:42 2010 +0300
@@ -77,7 +77,7 @@
     
     if ( nodeWindowGroupId == focusedWindowGroupId )
         {
-        return ETrue;
+        return aThis->IsFocused();
         }
 
     TInt count = wsSession.NumWindowGroups( 0 );
@@ -860,18 +860,21 @@
         // Add tactile feedbacup when tap can close note.
         if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
             {
-            if ( DialogFlags()&EEikDialogFlagCloseDialogWhenTapped )
-            	{
-                MTouchFeedback* feedback = MTouchFeedback::Instance();
-                if ( feedback )
+            if ( DialogFlags() & EEikDialogFlagCloseDialogWhenTapped )
+                {
+                if( Rect().Contains( aPointerEvent.iPosition ) )
                     {
-                    feedback->InstantFeedback( ETouchFeedbackPopUp );
+                    MTouchFeedback* feedback = MTouchFeedback::Instance();
+                    if ( feedback )
+                        {
+                        feedback->InstantFeedback( ETouchFeedbackPopUp );
+                        }
                     }
-            	}
+                }
             }
         else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
             {
-            if ( DialogFlags()&EEikDialogFlagCloseDialogWhenTapped )
+            if ( DialogFlags() & EEikDialogFlagCloseDialogWhenTapped )
                 {
                 if ( ctrl )
                     {
--- a/uifw/AvKon/src/AknPopupSettingPage.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknPopupSettingPage.cpp	Tue May 11 16:27:42 2010 +0300
@@ -677,7 +677,14 @@
     SetEditedItemFrameIID( KAknsIIDQsnFrSetOpt, KAknsIIDQsnFrSetOptCenter );
 
 	iQueryValue.SetQueryMode( MAknQueryValue::ESettingPageMode );
+	//
+	// SetQueryValue make the view item drawn by default, SetDisableRedraw can remove flick
+	//
+	TBool bRedrawDisabled = PopupSettingListBox()->View()->RedrawDisabled();
+	PopupSettingListBox()->View()->SetDisableRedraw( ETrue );
 	PopupSettingListBox()->SetQueryValueL( &iQueryValue );
+	PopupSettingListBox()->View()->SetDisableRedraw( bRedrawDisabled);
+
 	CheckAndSetDataValidity();
 	UpdateCbaL();
 
--- a/uifw/AvKon/src/AknPreviewPopUp.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknPreviewPopUp.cpp	Tue May 11 16:27:42 2010 +0300
@@ -218,8 +218,12 @@
         return; 
         }
 
+    // Skip disappear transition if the popup is either permanent, fixed or
+    // faded. Fading status is checked because there can't be two parallel
+    // effects applied to the same window.
     TBool useTfx = !( iFlags & CAknPreviewPopUpController::EPermanentMode 
-            || iFlags & CAknPreviewPopUpController::EFixedMode );
+            || iFlags & CAknPreviewPopUpController::EFixedMode ) 
+                    && !Window().IsFaded();
     
     if ( useTfx && GfxTransEffect::IsRegistered( this ) )
         {
--- a/uifw/AvKon/src/AknQueryControl.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknQueryControl.cpp	Tue May 11 16:27:42 2010 +0300
@@ -237,8 +237,11 @@
         if ( iParent->QueryType() == EPinLayout )
             {
             _AKNTRACE( "[%s][%s] ", "RevealSecretText( EFalse )", __FUNCTION__);
-            static_cast<CAknNumericSecretEditor*>
-                ( iParent->ControlByLayoutOrNull( EPinLayout ) )->RevealSecretText( EFalse );
+            if( iParent->ControlByLayoutOrNull( EPinLayout ) )
+            	{
+				static_cast<CAknNumericSecretEditor*>
+					( iParent->ControlByLayoutOrNull( EPinLayout ) )->RevealSecretText( EFalse );
+            	}
             }
         }
     
--- a/uifw/AvKon/src/AknSettingPage.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknSettingPage.cpp	Tue May 11 16:27:42 2010 +0300
@@ -1694,6 +1694,11 @@
             }
         }
     
+	//
+  	// Set editor control to be invisible
+  	//
+	iEditorControl->MakeVisible( EFalse );
+
 	DynamicInitL();
 	ActivateL();
 
@@ -1711,11 +1716,13 @@
                 demarcation );
         GfxTransEffect::SetDemarcation( this, demarcation );
 
+		iEditorControl->MakeVisible( ETrue );
         MakeVisible( ETrue );
         GfxTransEffect::End( this );
         }
     else
         {
+        iEditorControl->MakeVisible( ETrue );
         MakeVisible( ETrue );
         }
 
@@ -1777,7 +1784,9 @@
 		StartActiveScheduler();
 		}
 	else
-		AttemptExitL(EFalse);
+		{
+        AttemptExitL(EFalse);	
+        }
 	
 	iEikonEnv->EikAppUi()->RemoveFromStack(this);
 	CleanupStack::Pop(); // this
--- a/uifw/AvKon/src/AknTransparentCameraSettingPage.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknTransparentCameraSettingPage.cpp	Tue May 11 16:27:42 2010 +0300
@@ -225,7 +225,16 @@
 
     // Set the current "pushed in" indication
     if ( iCurrentSelectionIndex != -1 )
-        listBox->View()->SelectItemL( iCurrentSelectionIndex );
+    	{
+    	//
+    	// SelectItemL make the view item drawn by default, SetDisableRedraw can remove flick
+    	//
+    	TBool bRedrawDisabled = listBox->View()->RedrawDisabled();
+    	listBox->View()->SetDisableRedraw( ETrue );
+
+    	listBox->View()->SelectItemL( iCurrentSelectionIndex );
+    	listBox->View()->SetDisableRedraw( bRedrawDisabled );
+    	}
 
     // Set the scroller indication off
     listBox->CreateScrollBarFrameL(ETrue);
@@ -235,7 +244,9 @@
     listBox->UpdateScrollBarsL();
     
     if(!IsBackgroundDrawingEnabled())
-            listBox->ScrollBarFrame()->DrawBackground(EFalse, EFalse);
+    	{
+    	listBox->ScrollBarFrame()->DrawBackground(EFalse, EFalse);	
+    	}
     
 
     // Force a size changed
--- a/uifw/AvKon/src/AknViewAppUi.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknViewAppUi.cpp	Tue May 11 16:27:42 2010 +0300
@@ -270,13 +270,6 @@
 	    RemoveFromStack( iExtension->iNavigator );
 #endif // RD_SPLIT_VIEW
 	
-    // Hide application toolbar to prevent it from showing 
-    // after views are deleted
-    if ( CAknAppUi::CurrentFixedToolbar() )
-        {
-        CAknAppUi::CurrentFixedToolbar()->SetToolbarVisibility( EFalse );   
-        }
-
 	delete iClearer;
 	delete iShutter;
 	delete iActivationTick;
--- a/uifw/AvKon/src/Aknslider.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/Aknslider.cpp	Tue May 11 16:27:42 2010 +0300
@@ -65,8 +65,6 @@
 const TInt KScrollRepeatTimeout = 250000; // 0.25 seconds
 const TInt KStableFeedbackIntesity = 100;
 const TInt KFeedbackTimeout = 100000;
-const TInt KNoFeedbackTimeout = 0;
-const TInt KStepThreshold = 15;
 // ============================================================================
 // Internal class to hold slider control data, primarily coming from resource.
 NONSHARABLE_CLASS( CAknSliderData ): public CBase
@@ -4255,7 +4253,7 @@
             {
             intensity = FeedbackIntensity();
             }
-        feedback->StartFeedback( this, ETouchContinuousSlider, aPointerEvent, intensity, aTimeout );
+        feedback->StartFeedback( this, ETouchDynamicSlider, aPointerEvent, intensity, aTimeout );
         iExt->SetFlag( CAknSliderExtension::EFlagPlayingContinuousFb );
         }
     }
--- a/uifw/AvKon/src/aknApp.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknApp.cpp	Tue May 11 16:27:42 2010 +0300
@@ -31,6 +31,7 @@
 #include <UikonInternalPSKeys.h>
 #include <e32property.h>
 #include <AknSgcc.h>
+#include <w32std.h>
 
 LOCAL_C TBool IsInHiddenList(const TUid& aUid)
 	{
@@ -64,15 +65,40 @@
 		CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(ws, myWg);
 		wgName->SetAppUid(uid);
 		wgName->SetWindowGroupName(env->RootWin());
-
-		// Use a CAknTaskList to check for root instances of apps
-		CAknTaskList* taskList = CAknTaskList::NewLC(ws);
-		TBool foundInstance = EFalse;
-		
+	      
+        // Use a CAknTaskList to check for root instances of apps
+        CAknTaskList* taskList = CAknTaskList::NewLC(ws);
+        TBool foundInstance = EFalse;
+	    
 		// Look for another instance of this app
 		while (wgId>=0)
 			{
-			if (wgId && wgId != myWg && taskList->IsRootWindowGroup(wgId))
+		    TBool rootTask = taskList->IsRootWindowGroup(wgId);
+		    TBool rootWg = EFalse;
+		    TInt wndPriority = -1;
+		    if ( wgId != myWg && wgId > 0  && !rootTask )
+		        {
+                wndPriority = ws.GetWindowGroupOrdinalPriority( wgId );
+                RArray<RWsSession::TWindowGroupChainInfo> wgs;
+                // it seems effecient to call WindowGroupList here, this codes will seldom executed.
+                ws.WindowGroupList( wndPriority,  &wgs );
+                   
+                TInt count = wgs.Count();
+                for ( TInt ii=0; ii<count; ii++ )
+                    {
+                    const RWsSession::TWindowGroupChainInfo& info = wgs[ii];
+                    // find the window group id and check that it has no parent
+                    if ( info.iId == wgId )
+                        {
+                        rootWg = (info.iParentId <= 0);
+                        break;
+                        }
+                    }
+                
+                wgs.Close();
+		        }
+		    
+			if (wgId && wgId != myWg  &&  ( rootWg || rootTask ) )
 				{	// found another app, switch to it & die
 				/*
 				TApaTask other(ws);
--- a/uifw/AvKon/src/aknbattery.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknbattery.cpp	Tue May 11 16:27:42 2010 +0300
@@ -578,10 +578,13 @@
                 {
                 // set flag that pointerdown was inside battery pane
                 iPrivateFlags |= EAknBatteryPaneButton1DownInBatteryRect;
-                MTouchFeedback* feedback = MTouchFeedback::Instance();
-                if ( feedback )
+                if ( !AknStatuspaneUtils::ExtendedFlatLayoutActive() )
                     {
-                    feedback->InstantFeedback( ETouchFeedbackSensitiveButton );
+                    MTouchFeedback* feedback = MTouchFeedback::Instance();
+                    if ( feedback )
+                        {
+                        feedback->InstantFeedback( ETouchFeedbackSensitiveButton );
+                        }
                     }
                 }
             }
@@ -647,6 +650,15 @@
                     CAknSmallIndicator* indicatorNotifier =
                         CAknSmallIndicator::NewLC( TUid::Uid( 0 ) );
                     indicatorNotifier->HandleIndicatorTapL();
+                    //for indicator popup event
+                    if ( feedback )
+                        {
+                        feedback->InstantFeedback(
+                                           this,
+                                           ETouchFeedbackPopUp,
+                                           ETouchFeedbackVibra,
+                                           aPointerEvent );
+                        }
                     CleanupStack::PopAndDestroy( indicatorNotifier );
                     }
                 }
--- a/uifw/AvKon/src/aknchoicelist.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknchoicelist.cpp	Tue May 11 16:27:42 2010 +0300
@@ -474,7 +474,8 @@
             if ( aKeyEvent.iScanCode == EStdKeyUpArrow || 
                  aKeyEvent.iScanCode == EStdKeyDownArrow || 
                  aKeyEvent.iScanCode == EStdKeyEnter ||
-                 aKeyEvent.iScanCode == EStdKeyDevice3 )
+                 aKeyEvent.iScanCode == EStdKeyDevice3 ||
+                 aKeyEvent.iScanCode == EStdKeyNkpEnter )
                 {            
                 return iList->OfferKeyEventL(aKeyEvent, aType);    
                 }
--- a/uifw/AvKon/src/akncombinedpane.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/akncombinedpane.cpp	Tue May 11 16:27:42 2010 +0300
@@ -25,6 +25,7 @@
 #include <AknSmallIndicator.h>
 #include <aknappui.h>
 #include <uikon/eikdefmacros.h>
+#include <touchfeedback.h>
 
 #include "akncombinedpane.h"
 #include "aknstatuspanedatasubscriber.h"
@@ -192,6 +193,16 @@
                 CAknSmallIndicator* indicatorNotifier =
                     CAknSmallIndicator::NewLC( TUid::Uid( 0 ) );
                 indicatorNotifier->HandleIndicatorTapL();
+                //for indicator popup event
+                MTouchFeedback* feedback = MTouchFeedback::Instance();
+                if ( feedback )
+                    {
+                    feedback->InstantFeedback(
+                                       this,
+                                       ETouchFeedbackPopUp,
+                                       ETouchFeedbackVibra,
+                                       aPointerEvent );
+                    }
                 CleanupStack::PopAndDestroy( indicatorNotifier );
                 }
             
--- a/uifw/AvKon/src/akndigitalclock.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/akndigitalclock.cpp	Tue May 11 16:27:42 2010 +0300
@@ -445,6 +445,16 @@
         CAknSmallIndicator* indicatorNotifier =
             CAknSmallIndicator::NewLC( TUid::Uid( 0 ) );
         indicatorNotifier->HandleIndicatorTapL();
+        //for indicator popup event
+        MTouchFeedback* feedback = MTouchFeedback::Instance();
+        if ( feedback )
+            {
+            feedback->InstantFeedback(
+                               this,
+                               ETouchFeedbackPopUp,
+                               ETouchFeedbackVibra,
+                               aPointerEvent );
+            }
         CleanupStack::PopAndDestroy( indicatorNotifier );
 
         // Up event received, reset button down flag.
--- a/uifw/AvKon/src/akndiscreetpopupcontrol.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/akndiscreetpopupcontrol.cpp	Tue May 11 16:27:42 2010 +0300
@@ -49,7 +49,8 @@
     EPressedDown,     // Pointer down is received in popup area
     EDismissed,       // Popup is dismissed (pointer up is received in popup area)
     EGlobal,          // Popup is global
-    EDragged          // Pointer is dragged while popup open
+    EDragged,         // Pointer is dragged while popup open
+    EStartTimerAgain  // Start timer again when timer is out and keep pressing  
     };
 
 
@@ -412,13 +413,19 @@
 void CAknDiscreetPopupControl::DoTimeOut()
     {
 	_AKNTRACE_FUNC_ENTER;
-    if ( !iInternalFlags.IsSet( EPressedDown ) )
+    if ( !iInternalFlags.IsSet( EPressedDown ) || 
+    	 iInternalFlags.IsSet( EStartTimerAgain ) )
         {
         TRAP_IGNORE( RequestExitL() );
         }
     else
         {
         iTimer->Cancel();
+        // if time is out and keep pressing, start short timer again.
+        iInternalFlags.Set( EStartTimerAgain );
+        iTimer->Start( KShortTimeout, 
+                       0, 
+                       TCallBack( TimeOut, this ) );
         }
 	_AKNTRACE_FUNC_EXIT;
     }
@@ -438,6 +445,7 @@
         }
     HidePopup();
     ReportEventL( MCoeControlObserver::EEventRequestExit );
+    iInternalFlags.Clear( EStartTimerAgain );
     iInternalFlags.Clear( EPressedDown );
     _AKNTRACE_FUNC_EXIT;
     }
@@ -763,52 +771,46 @@
     {
     TBool eventInRect( Rect().Contains( aPointerEvent.iPosition ) );
     
-    // 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 ) 
+    // Pointer down - set pressed-down state (popup completely visible while
+    // pressed-down)
+    if ( aPointerEvent.iType == TPointerEvent::EButton1Down 
+         && eventInRect
+         && iInternalFlags.IsClear( EDismissed ) )
         {
-        // 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 )
+        _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 ) )
             {
-            _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 );
-                }
+            iInternalFlags.Clear( 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 );
+        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 );
+        }
     }
-
--- a/uifw/AvKon/src/aknindicator.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknindicator.cpp	Tue May 11 16:27:42 2010 +0300
@@ -286,6 +286,11 @@
         this->MakeVisible(EFalse);
         DeleteBitmaps();
         }
+    else if (iState == EAknIndicatorStateAnimate )
+        {
+        MakeVisible( ETrue );
+        }
+        
     SizeChanged();
     }
 
--- a/uifw/AvKon/src/aknlistquerydialog.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknlistquerydialog.cpp	Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
 #include <AknMediatorFacade.h>
 #include <MediatorEventProvider.h>
 #include <MediatorDomainUIDs.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 
 #include "aknPopupHeadingPane.h"
 #include "aknlistquerycontrol.h"
@@ -262,9 +262,17 @@
 		listbox->SetListBoxObserver(this);
     
 		CAknListQueryControl* listControl = ListControl();
-		if (listControl)
-			listControl->SetLayout(&iLayout);
-		}
+        if ( listControl )
+            {
+            listControl->SetLayout( &iLayout );
+            }            
+        
+        if ( iAvkonAppUi->IsSingleClickCompatible() && 
+             !IsLeftSoftkeyShown() )
+            {
+            MakeLeftSoftkeyVisible( EFalse );
+            }    
+        }
 
     if (FindBox())
         {
@@ -461,6 +469,16 @@
                         iIdle->Start(TCallBack(ClosePopupAcceptingChanges, this));
                         }
                     }  
+                
+                if( iAvkonAppUi->IsSingleClickCompatible() && 
+                        aListBox->IsMultiselection() )
+                    {
+                    CEikListBox* listbox = ListBox();
+                    if( listbox )
+                        {
+                        MakeLeftSoftkeyVisible( IsLeftSoftkeyShown() );
+                        }    
+                    }
                 }
                 break;
             default:
@@ -565,16 +583,22 @@
 	        }
 
         TInt currentSelection = listbox->CurrentItemIndex();
-        if( currentSelection == KErrNotFound )
+        TBool isSingleClick = iAvkonAppUi->IsSingleClickCompatible(); 
+        if ( currentSelection == KErrNotFound )
             {
-            MakeLeftSoftkeyVisible(EFalse);
+            MakeLeftSoftkeyVisible( EFalse );
             }
-        else
+        else if ( isSingleClick )
             {
-            MakeLeftSoftkeyVisible(ETrue);
+            MakeLeftSoftkeyVisible( IsLeftSoftkeyShown() );
             }
             
         TKeyResponse response = listbox->OfferKeyEventL( aKeyEvent, aType);
+        
+        if ( isSingleClick && IsLeftSoftkeyShown() )
+            {
+            MakeLeftSoftkeyVisible( ETrue );
+            }
         if (currentSelection != listbox->CurrentItemIndex() && iMediatorObs)
             {
             iMediatorObs->UpdateL(listbox->CurrentItemIndex());
@@ -770,6 +794,18 @@
     return NULL;
     }
 
+TBool CAknListQueryDialog::IsLeftSoftkeyShown()
+	{
+    CEikListBox* listbox = ListBox();
+    __ASSERT_DEBUG( listbox, Panic(EAknPanicNullPointer));
+    // This flag indicators that listbox is a viewer listbox.    
+    TBool isViewMode = listbox->View()->ItemDrawer()->Flags() & 
+                           CListItemDrawer::EDisableHighlight; 
+
+    return listbox->IsHighlightEnabled() || 
+               listbox->SelectionIndexes()->Count() > 0 || isViewMode;
+	}
+
 EXPORT_C void CAknListQueryDialog::SetTone(TInt aTone)
 	{
 	iTone = (TTone)aTone;
--- a/uifw/AvKon/src/aknlists.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknlists.cpp	Tue May 11 16:27:42 2010 +0300
@@ -1612,6 +1612,12 @@
     TInt pos = -1;
 
     TBool removeicon = (!aItemIsSelected && !ItemMarkReverse()) || (aItemIsSelected && ItemMarkReverse());
+    
+    if ( Flags() & CListItemDrawer::EMarkingModeEnabled )
+        {
+        removeicon = EFalse;
+        }
+
     if ( Flags() & EDrawMarkSelection && ItemMarkPosition() != -1 && removeicon)
         {
         repl.Set( ItemMarkReplacement() );
@@ -3097,8 +3103,23 @@
                 transApi->StartDrawing( MAknListBoxTfxInternal::EListView );
                 }
 #endif //RD_UI_TRANSITION_EFFECTS_LIST
-            gc->SetBrushColor(this->BackColor());
-            AknsDrawUtils::BackgroundBetweenRects( AknsUtils::SkinInstance(), cc, this, *gc, clientRect, this->iView->ViewRect() );
+
+            if ( this->iItemDrawer->Flags() 
+                    & CListItemDrawer::EDrawWholeBackground )
+                {
+                AknsDrawUtils::Background( 
+                    AknsUtils::SkinInstance(), cc, this, *gc, clientRect );
+                
+                this->iItemDrawer->SetFlags( CListItemDrawer::EBackgroundDrawn );
+                }
+            else
+                {
+                gc->SetBrushColor(this->BackColor());
+                AknsDrawUtils::BackgroundBetweenRects( 
+                        AknsUtils::SkinInstance(), cc, this, *gc, clientRect, 
+                        this->iView->ViewRect() );
+                }
+
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
             if ( transApi )
                 {
--- a/uifw/AvKon/src/aknlongtapanimation.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknlongtapanimation.cpp	Tue May 11 16:27:42 2010 +0300
@@ -24,8 +24,6 @@
 
 #include <AknTasHook.h> // for testability hooks
 #include <touchfeedback.h>
-const TInt KStartIntensity = 1;
-const TInt KEndIntensity = 100;
 #include "aknlongtapanimation.h"
 
 enum TInternalFlags
@@ -195,15 +193,9 @@
     MTouchFeedback* feedback = MTouchFeedback::Instance();
     if ( feedback )
         {
-        CBitmapAnimClientData* animData = iAnim->BitmapAnimData();	
-		TInt interval = animData->FrameIntervalInMilliSeconds()
-		             * KConversionFromMillisecondsToMicroseconds;
-        TInt frameCount = animData->FrameArray().Count();
-
-        // timeout should be greater than normal animation time 
-        // so that timeout does not interfere into normal operation
-        TInt timeout = interval * (frameCount+1); 
-        feedback->StartFeedback( this, ETouchContinuousSmooth, NULL, KStartIntensity, timeout );
+        feedback->InstantFeedback( 
+                this, ETouchFeedbackLongTap,
+                ETouchFeedbackVibra, TPointerEvent() );
         }
 	StartAnimation();
     }
@@ -375,11 +367,6 @@
 		{
 		iExtension->iTimer->Cancel();
 		iExtension->iFlags &= ~EAnimationStarted;
-        MTouchFeedback* feedback = MTouchFeedback::Instance();
-        if ( feedback )
-            {
-            feedback->StopFeedback( this );
-            }
 		}
 	}
 
@@ -398,14 +385,6 @@
 	{
 		iExtension->iIndex = frameCount - 1;
 	}
-    MTouchFeedback* feedback = MTouchFeedback::Instance();
-    if ( feedback )
-        {
-        // intensity should go from 0 to 100
-        TInt intensity = KEndIntensity
-                       * (iExtension->iIndex+1) / frameCount;
-        feedback->ModifyFeedback( this, intensity );
-        }
 	DrawNow();
 	}
 
--- a/uifw/AvKon/src/aknmessagequerydialog.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknmessagequerydialog.cpp	Tue May 11 16:27:42 2010 +0300
@@ -1061,7 +1061,7 @@
         return EFalse;
         }
     TInt curLink = control->CurrentLink();
-    TRAPD( err, iMsgQueryExtension->ExecuteLinkCallbackL( curLink ) );
+    TRAP_IGNORE( iMsgQueryExtension->ExecuteLinkCallbackL( curLink ) );
     control->DehighlightLink();
     _AKNTRACE_FUNC_EXIT;
     return ETrue;
--- a/uifw/AvKon/src/aknsfld.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknsfld.cpp	Tue May 11 16:27:42 2010 +0300
@@ -246,7 +246,7 @@
         {
         aFieldStyle = EPopupWindow;
         }
-
+    iColumnFlag = 0xFFFFFFFF;   
     switch ( aFieldStyle )
         {
         case EFixed:
@@ -304,8 +304,7 @@
         case EAdaptiveSearch:
             bitmapId = EMbmAvkonQgn_indi_find_glass;
             bitmapMaskId = EMbmAvkonQgn_indi_find_glass_mask;
-            SetContainerWindowL( aParent );  
-            iColumnFlag = 0xFFFFFFFF;     
+            SetContainerWindowL( aParent );      
             if( AknLayoutUtils::PenEnabled() )
                 {
                 iAdaptiveSearch = CAknAdaptiveSearch::NewL( aTextLimit, aFieldStyle );       
@@ -323,7 +322,6 @@
             bitmapId = EMbmAvkonQgn_indi_find_glass;
             bitmapMaskId = EMbmAvkonQgn_indi_find_glass_mask;
             CreateWindowL( &aParent ); 
-            iColumnFlag = 0xFFFFFFFF; 
             if( AknLayoutUtils::PenEnabled() )
                 {
                 iAdaptiveSearch = CAknAdaptiveSearch::NewL( aTextLimit, aFieldStyle );       
@@ -342,7 +340,6 @@
             bitmapMaskId = EMbmAvkonQgn_indi_find_glass_mask;
             flags |= CAknInputFrame::EPopupLayout;
             CreateWindowL(); 
-            iColumnFlag = 0xFFFFFFFF; 
             iIsPopup = ETrue;
             if( AknLayoutUtils::PenEnabled() )
                 {
@@ -376,7 +373,6 @@
             flags |= CAknInputFrame::EPopupWindowLayout;
             flags |= CAknInputFrame::EFixedFindWithoutLine;
             SetContainerWindowL( aParent ); 
-            iColumnFlag = 0xFFFFFFFF;   
             if( AknLayoutUtils::PenEnabled() )
                 {
                 iAdaptiveSearch = CAknAdaptiveSearch::NewL( aTextLimit, aFieldStyle );       
@@ -1180,7 +1176,7 @@
 
 // -----------------------------------------------------------------------------
 // CAknSearchField::SetListColumnFilterFlags
-// Set flag of columns for adaptive search grid.
+// Set flag of columns.
 // -----------------------------------------------------------------------------
 //
 EXPORT_C void CAknSearchField::SetListColumnFilterFlags( const TBitFlags32 aFlag )
--- a/uifw/AvKon/src/aknutils.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknutils.cpp	Tue May 11 16:27:42 2010 +0300
@@ -1885,14 +1885,17 @@
     
     // an index to end of array
     TInt indexEnd = iShownIndexes->Count();
+
+    TBitFlags32 columnFlag = iSearchField->ListColumnFilterFlags(); 
+    HBufC16* temptext = HBufC16::NewL( KMatchingBufferLength );  
+    CleanupStack::PushL( temptext );  
+    TPtr ptr_temptext( temptext->Des() );  
+
     // If adaptive search manage with next characters
     if( iSearchField && IsAdaptiveSearch() )
         {        
         ClearNextChars();
-        TBitFlags32 columnFlag = iSearchField->ListColumnFilterFlags(); 
-        HBufC16* temptext = HBufC16::NewL( KMatchingBufferLength );  
-        CleanupStack::PushL( temptext );  
-        TPtr ptr_temptext( temptext->Des() );  
+        
         for ( TInt i = iShownIndexes->Count()-1; i>=0; i-- )
            {
            TInt realindex = iShownIndexes->At( i );        
@@ -1945,15 +1948,17 @@
         CleanupStack::PopAndDestroy(array);   
 
         iSearchField->SetAdaptiveGridChars( *(iExtension->iNextChars) ); 
-        CleanupStack::PopAndDestroy( temptext );
         }
     else
         {
         for (TInt i = iShownIndexes->Count()-1; i>=0 ; i--)
             {
-            TInt realindex = iShownIndexes->At(i);
-            TPtrC itemtext = array->MdcaPoint(realindex);
-            TBool isItemVisible = IsItemVisible(itemtext, aCriteria);
+
+            TInt realindex = iShownIndexes->At( i );        
+            TPtrC itemtext = arr->ItemTextArray()->MdcaPoint( realindex );
+            AknFind::UpdateItemTextAccordingToFlag( itemtext, columnFlag, ptr_temptext );
+            TBool isItemVisible = IsItemVisible( ptr_temptext, aCriteria );
+
             TBool isItemSelected = IsItemSelected(realindex);
             // EAJA-7SK9UC set indexToSet as current index when found item
             if ( isItemVisible )
@@ -1964,8 +1969,10 @@
                 {
                 iShownIndexes->Delete(i);
                 }
+            ptr_temptext.Zero();  
             }  
-        }   
+        } 
+    CleanupStack::PopAndDestroy( temptext );  
     InstallEmptyTextL();
 
     // Set highlight to the first match item in markable list
@@ -1985,17 +1992,19 @@
     // An index to set highlight after find pane updating
     TInt indexToSet = KInvalidIndex;    
     iShownIndexes->Reset();
+
+    const MDesCArray *array = iModel->MatchableTextArray();
+    const CAknFilteredTextListBoxModel* arr = (CAknFilteredTextListBoxModel*)( iModel->MatchableTextArray() );
+    TInt count = array->MdcaCount();
+    TBitFlags32 columnFlag = iSearchField->ListColumnFilterFlags();
+    HBufC16* temptext = HBufC16::NewL( KMatchingBufferLength ); 
+    CleanupStack::PushL( temptext );
+    TPtr ptr_temptext( temptext->Des() );   
+
     // If adaptive search field 
     if( iSearchField && IsAdaptiveSearch() )
         {        
         ClearNextChars();
-        TBitFlags32 columnFlag = iSearchField->ListColumnFilterFlags();
-        HBufC16* temptext = HBufC16::NewL( KMatchingBufferLength ); 
-        CleanupStack::PushL( temptext );
-        TPtr ptr_temptext( temptext->Des() );       
-        const MDesCArray *array = iModel->MatchableTextArray();
-        const CAknFilteredTextListBoxModel* arr = (CAknFilteredTextListBoxModel*)(iModel->MatchableTextArray());
-        TInt count = array->MdcaCount();
         
         for (TInt i = 0; i < count; i++)
            {            
@@ -2015,12 +2024,10 @@
            }                
         iSearchField->SetAdaptiveGridChars( *(iExtension->iNextChars) ); 
         InstallEmptyTextL(); 
-        CleanupStack::PopAndDestroy( temptext );
         }
     else
         {
-        const MDesCArray *array = iModel->MatchableTextArray();
-        TInt count = array->MdcaCount();
+
         TInt i;
 
         if ( aCriteria.Length() == 0)
@@ -2040,8 +2047,10 @@
             {
             for( i = 0; i < count ; i++ )
                 {
-                TPtrC itemtext = array->MdcaPoint(i);
-                TBool isItemVisible = IsItemVisible(itemtext, aCriteria);
+
+                TPtrC itemtext = arr->ItemTextArray()->MdcaPoint( i );    
+                AknFind::UpdateItemTextAccordingToFlag( itemtext, columnFlag, ptr_temptext );
+                TBool isItemVisible = IsItemVisible( temptext->Des(), aCriteria );
                 
                 // Find first match item to set highlight
                 if ((indexToSet == KInvalidIndex) && isItemVisible)
@@ -2052,10 +2061,12 @@
                     {
                     iShownIndexes->AppendL(i);
                     }
+                ptr_temptext.Zero();  
                 } 
             InstallEmptyTextL();
             }
         }
+    CleanupStack::PopAndDestroy( temptext );
     
     // Set highlight to the first match item in markable list
     if ( iListBox && indexToSet != KInvalidIndex )
--- a/uifw/AvKon/src/eikfrlb.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/eikfrlb.cpp	Tue May 11 16:27:42 2010 +0300
@@ -162,17 +162,11 @@
             {
             backgroundDrawer->Draw( *iGc, *control, r );
             }
-        else if ( CAknEnv::Static()->TransparencyEnabled() )
+        else
             {
             AknsDrawUtils::Background( AknsUtils::SkinInstance(), cc, control, *iGc, r,
                                    KAknsDrawParamNoClearUnderImage );
             }
-        else
-            {
-            AknsDrawUtils::Background( AknsUtils::SkinInstance(), cc, control, *iGc, r,
-                                   KAknsDrawParamNoClearUnderImage |
-                                   KAknsDrawParamBottomLevelRGBOnly );
-            }
         }
     else
         {
@@ -219,6 +213,11 @@
 #endif //RD_UI_TRANSITION_EFFECTS_LIST
 
     TBool removeicon = (!aItemIsSelected && !ItemMarkReverse()) || (aItemIsSelected && ItemMarkReverse());
+    
+    if ( Flags() & CListItemDrawer::EMarkingModeEnabled )
+        {
+        removeicon = EFalse;
+        }
 
     CFormattedCellListBoxData::TColors colors;
     colors.iText=iTextColor;
@@ -404,18 +403,6 @@
     iTopItemIndex = aTop;
     }
 
-void 
-CFormattedCellListBoxItemDrawer::DrawCurrentItemRect(const TRect& aRect) const
-    {
-    _AKNTRACE_FUNC_ENTER;    
-    iGc->SetClippingRect(iViewRect);
-    iGc->SetBrushStyle(CGraphicsContext::ENullBrush);
-    iGc->SetPenColor(iHighlightedBackColor);
-    iGc->DrawRect(aRect);
-    iGc->CancelClippingRect();
-    _AKNTRACE_FUNC_EXIT;
-    }
-
 
 //
 // CEikFormattedCellListBox
@@ -812,7 +799,6 @@
     
     itemDrawer->SetTopItemIndex( iTopItemIndex );
 
-    TBool transparencyEnabled = CAknEnv::Static()->TransparencyEnabled();
     TInt numberOfItems = iModel->NumberOfItems();
     
     if ( numberOfItems > 0 )
@@ -824,149 +810,121 @@
             CAknListLoader::TfxApiInternal( gc );
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
 		
-		if ( transparencyEnabled )
-		    {
-    		if ( iWin && iWin->GetDrawRect() == TRect::EUninitialized )
-	    		{
+        if ( iWin && iWin->GetDrawRect() == TRect::EUninitialized )
+    		{
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
-                drawingInitiated = transApi && !transApi->EffectsDisabled();
+            drawingInitiated = transApi && !transApi->EffectsDisabled();
 #else
-                drawingInitiated = EFalse;
+            drawingInitiated = EFalse;
 #endif
-    			}
+			}
 
-	    	if ( !drawingInitiated )
-		    	{
-    			iWin->Invalidate( *aClipRect );
-	    		iWin->BeginRedraw( *aClipRect );
-		    	}
-		    }
+    	if ( !drawingInitiated )
+	    	{
+			iWin->Invalidate( *aClipRect );
+    		iWin->BeginRedraw( *aClipRect );
+	    	}
 
         TInt lastPotentialItemIndex =
             Min( numberOfItems,
                  iTopItemIndex + NumberOfItemsThatFitInRect( iViewRect ) );
 
+        gc->SetClippingRect( iViewRect );
+        
         while ( i < lastPotentialItemIndex )      
             {
+            DrawItem( i++ );
+            }
+
+        gc->CancelClippingRect();
+
+        if ( control && !static_cast<CEikListBox*>( control )->
+                BackgroundDrawingSuppressed() )
+            {
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
             if ( transApi )
                 {
-                transApi->StartDrawing( MAknListBoxTfxInternal::EListNotSpecified );
-                }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
-            gc->SetClippingRect( iViewRect );
-            
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-            if ( transApi )
-                {
-                transApi->StopDrawing();
+                transApi->StartDrawing( MAknListBoxTfxInternal::EListView );
                 }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
-            DrawItem( i++ );
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-            if ( transApi )
-                {
-                transApi->StartDrawing( MAknListBoxTfxInternal::EListNotSpecified );
-                }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
 
-            gc->CancelClippingRect();
-            
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-            if ( transApi )
+            if ( i > iBottomItemIndex + 1 )
                 {
-                transApi->StopDrawing();
+                i = iBottomItemIndex + 1;
                 }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-            }
 
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-        if ( transApi )
-            {
-            transApi->StartDrawing( MAknListBoxTfxInternal::EListView );
-            }
-
-        if ( i > iBottomItemIndex + 1 )
-            {
-            i = iBottomItemIndex + 1;
-            }
-
-        TRect usedPortionOfViewRect(
-            iViewRect.iTl + TSize( 0, iVerticalOffset ),
-            TSize( iViewRect.Width(), ( i - iTopItemIndex ) * iItemHeight ) );
+            TRect usedPortionOfViewRect(
+                iViewRect.iTl + TSize( 0, iVerticalOffset ),
+                TSize( iViewRect.Width(), ( i - iTopItemIndex ) * iItemHeight ) );
 #else
-        // clear the unused portion of the viewing area
-        TRect usedPortionOfViewRect( iViewRect.iTl.iX,
+            // clear the unused portion of the viewing area
+            TRect usedPortionOfViewRect( iViewRect.iTl.iX,
                                      iViewRect.iTl.iY + iVerticalOffset,
                                      iViewRect.Width(),
                                      ItemPos( lastPotentialItemIndex ).iY );
         
-        if ( aClipRect )
-            {
-            usedPortionOfViewRect.iBr.iX = aClipRect->iBr.iX;
-            }
-
+            if ( aClipRect )
+                {
+                usedPortionOfViewRect.iBr.iX = aClipRect->iBr.iX;
+                }
 #endif
 
-        // Also draw the area behind scroll bar.
-        TRect sbbg( iViewRect ); // whole area behind scroll bar
-        
-        if ( AknLayoutUtils::LayoutMirrored() )
-            {
-            _AKNTRACE("CFormattedCellListBoxView::Draw Layout mirrored");
-            sbbg.iBr.iX = iViewRect.iBr.iX - itemDrawer->LafItemSize().iWidth;
-            }
-        else
-            {
-            sbbg.iTl.iX = iViewRect.iTl.iX + itemDrawer->LafItemSize().iWidth;
-            }
-
-        // Unused portion will be cleared only if listbox background is drawn.
-        if ( itemDrawer->ColumnData()->IsBackgroundDrawingEnabled() ) 
-            {
-            if ( control )
+            // Also draw the area behind scroll bar.
+            TRect sbbg( iViewRect ); // whole area behind scroll bar
+            
+            if ( AknLayoutUtils::LayoutMirrored() )
                 {
-                if ( !control->FindBackground() )
-                    {
-                    AknsDrawUtils::BackgroundBetweenRects( skin, 
-                                                           cc, 
-                                                           control, 
-                                                           *gc, 
-                                                           iViewRect, 
-                                                           usedPortionOfViewRect );
-
-                    if ( !sbbg.IsEmpty() )
-                        {
-                        AknsDrawUtils::Background( skin,
-                                                   cc,
-                                                   control,
-                                                   *gc,
-                                                   sbbg );
-                        }
-                    }
+                _AKNTRACE("CFormattedCellListBoxView::Draw Layout mirrored");
+                sbbg.iBr.iX = iViewRect.iBr.iX - itemDrawer->LafItemSize().iWidth;
                 }
             else
                 {
-                gc->SetBrushColor( BackColor() );
-                DrawUtils::ClearBetweenRects( *gc,
-                                              iViewRect,
-                                              usedPortionOfViewRect );
-                gc->Clear( sbbg );
+                sbbg.iTl.iX = iViewRect.iTl.iX + itemDrawer->LafItemSize().iWidth;
                 }
-            }
+    
+            // Unused portion will be cleared only if listbox background is drawn.
+            if ( itemDrawer->ColumnData()->IsBackgroundDrawingEnabled() ) 
+                {
+                if ( control )
+                    {
+                    if ( !control->FindBackground() )
+                        {
+                        AknsDrawUtils::BackgroundBetweenRects( skin, 
+                                                               cc, 
+                                                               control, 
+                                                               *gc, 
+                                                               iViewRect, 
+                                                               usedPortionOfViewRect );
+    
+                        if ( !sbbg.IsEmpty() )
+                            {
+                            AknsDrawUtils::Background( skin,
+                                                       cc,
+                                                       control,
+                                                       *gc,
+                                                       sbbg );
+                            }
+                        }
+                    }
+                else
+                    {
+                    gc->SetBrushColor( BackColor() );
+                    DrawUtils::ClearBetweenRects( *gc,
+                                                  iViewRect,
+                                                  usedPortionOfViewRect );
+                    gc->Clear( sbbg );
+                    }
+                }
 
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST  
-    if ( transApi )
-        {
-        transApi->StopDrawing();
-        }
+            if ( transApi )
+                {
+                transApi->StopDrawing();
+                }
 #endif //RD_UI_TRANSITION_EFFECTS_LIST      
 
+            }
 
-		if ( transparencyEnabled && !drawingInitiated )
+		if ( !drawingInitiated )
 			{
 			iWin->EndRedraw();
 			}
@@ -1343,9 +1301,14 @@
 void CFormattedCellListBoxItemDrawer::DrawBackgroundAndSeparatorLines( 
         const TRect& aItemTextRect, TBool aDrawSeparator ) const
     {
+    // If we get here background is drawn via avkon implementation -> raise the
+    // corresponding flag in item drawer.
+    const_cast<CFormattedCellListBoxItemDrawer*>( this )->SetFlags( ENativeImplementation );
+
     MAknsSkinInstance *skin = AknsUtils::SkinInstance();
     CCoeControl* control = FormattedCellData()->Control();
     MAknsControlContext *cc = AknsDrawUtils::ControlContext( control );
+    CEikListBox* listbox = static_cast<CEikListBox*>( control );
 
     if ( !cc )
         {
@@ -1367,7 +1330,8 @@
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
 
     // background
-    if ( FormattedCellData()->IsBackgroundDrawingEnabled() )
+    if ( FormattedCellData()->IsBackgroundDrawingEnabled() && listbox
+            && !listbox->BackgroundDrawingSuppressed() )
         {
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
         MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal( iGc );
@@ -1387,19 +1351,12 @@
                 backgroundDrawer->Draw( *iGc, *control, aItemTextRect );
                 bgDrawn = ETrue;
                 }
-            else if ( CAknEnv::Static()->TransparencyEnabled() )
+            else
                 {
                 bgDrawn = AknsDrawUtils::Background(
                     skin, cc, control, *iGc, aItemTextRect,
                     KAknsDrawParamNoClearUnderImage );
                 }
-            else
-                {
-                bgDrawn = AknsDrawUtils::Background(
-                    skin, cc, control, *iGc, aItemTextRect,
-                    KAknsDrawParamNoClearUnderImage | 
-                    KAknsDrawParamBottomLevelRGBOnly );
-                }
             }
         if ( !bgDrawn )
             {
@@ -1411,12 +1368,12 @@
             transApi->StopDrawing();
             }
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
+        }
 
-        if ( aDrawSeparator && control && 
-            static_cast<CEikListBox*>( control )->ItemsInSingleLine() == 1 )
-            {
-            AknListUtils::DrawSeparator( *iGc, aItemTextRect, iTextColor, skin );
-            }
+    if ( aDrawSeparator && listbox && 
+        listbox->ItemsInSingleLine() == 1 )
+        {
+        AknListUtils::DrawSeparator( *iGc, aItemTextRect, iTextColor, skin );
         }
     }
 
--- a/uifw/AvKon/src/eikfrlbd.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/eikfrlbd.cpp	Tue May 11 16:27:42 2010 +0300
@@ -40,6 +40,8 @@
 #include <aknlayoutscalable_avkon.cdl.h>
 #include <layoutmetadata.cdl.h>
 #include <aknphysics.h>
+#include <AknIconArray.h>
+#include <avkon.mbg>
 
 
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -183,6 +185,8 @@
                              TBool aUseLogicalToVisualConversion, 
                              const TRgb &aColor);
     TInt ConvertTextToSmiley( TDes& aText );
+    void LoadMarkingIconsL();
+
 private: // New internal methods
     TBool DrawHighlightBackground( CFbsBitGc& aGc );
     void PostDeleteAnimation();
@@ -277,6 +281,7 @@
     TBool iKineticScrolling;
     CAknSmileyManager* iSmileyMan;
     TSize iSmileySize; // last set simley size
+    CAknIconArray* iMarkingIconArray;
     };
 
 
@@ -325,6 +330,7 @@
 #endif
 
     iKineticScrolling = CAknPhysics::FeatureEnabled();
+    LoadMarkingIconsL();
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -353,6 +359,13 @@
     delete iAnimation;
     delete iColorBmp;
     delete iHiliBmp;
+    
+    if ( iMarkingIconArray )
+        {
+        iMarkingIconArray->ResetAndDestroy();
+        }
+
+    delete iMarkingIconArray;
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -697,6 +710,7 @@
     DeleteAnim();
     TryCreateAnimation();
     TRAP_IGNORE(CreateColorBitmapsL());
+    TRAP_IGNORE( LoadMarkingIconsL() );
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -1306,6 +1320,47 @@
     return err == KErrNone ? count : err;
     }
 
+
+// -----------------------------------------------------------------------------
+// CFormattedCellListBoxDataExtension::LoadMarkingIconsL
+// -----------------------------------------------------------------------------
+//
+void CFormattedCellListBoxDataExtension::LoadMarkingIconsL()
+    {
+    if ( !iMarkingIconArray )
+        {
+        iMarkingIconArray = new ( ELeave ) CAknIconArray( 2 );
+        }
+    else
+        {
+        iMarkingIconArray->ResetAndDestroy();
+        }
+
+    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+    const TDesC& avkonIconFile = AknIconUtils::AvkonIconFileName();
+
+    CGulIcon* icon = AknsUtils::CreateGulIconL( skin, 
+            KAknsIIDQgnPropCheckboxOn, 
+            avkonIconFile, 
+            EMbmAvkonQgn_prop_checkbox_on, 
+            EMbmAvkonQgn_prop_checkbox_on_mask );
+    
+    CleanupStack::PushL( icon );
+    iMarkingIconArray->AppendL( icon );
+    CleanupStack::Pop( icon );
+
+    icon = AknsUtils::CreateGulIconL( skin, 
+            KAknsIIDQgnPropCheckboxOff, 
+            avkonIconFile, 
+            EMbmAvkonQgn_prop_checkbox_off, 
+            EMbmAvkonQgn_prop_checkbox_off_mask );
+
+    CleanupStack::PushL( icon );
+    iMarkingIconArray->AppendL( icon );
+    CleanupStack::Pop( icon );
+    }
+
+
 EXPORT_C CCoeControl *CFormattedCellListBoxData::Control() const 
     {
     __ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
@@ -2274,7 +2329,11 @@
             aItemRect.iBr.iY);
     
     __ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
-    CListBoxView* view = static_cast<CEikListBox*>( iExtension->iControl )->View();
+    __ASSERT_DEBUG( iExtension->iControl, Panic( EAknPanicNullPointer ));
+
+    CEikListBox* listbox = static_cast<CEikListBox*>( iExtension->iControl ); 
+    CListBoxView* view = listbox->View();
+
     if (!view->ViewRect().Intersects(aItemRect))
         {
         // outside of the clipping rect -> don't process this item
@@ -2285,10 +2344,12 @@
         {
         iExtension->iClippedSubcells = 0;
         }
+
+    TBool backgroundDrawingSuppressed = listbox->BackgroundDrawingSuppressed();
     
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
     MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc );
-    if ( transApi )
+    if ( transApi && !backgroundDrawingSuppressed )
         {
         transApi->StartDrawing( MAknListBoxTfxInternal::EListItem );
         if(transApi->EffectsDisabled())
@@ -2297,7 +2358,10 @@
             }
         }
 #else
-    aGc.SetClippingRect( view->ViewRect() );
+    if ( !backgroundDrawingSuppressed )
+        {
+        aGc.SetClippingRect( view->ViewRect() );
+        }
 #endif //RD_UI_TRANSITION_EFFECTS_LIST
     TRect vr(view->ViewRect());
     _AKNTRACE("Clipping: Width %d, (%d,%d)", vr.Width(), vr.iTl.iX, vr.iBr.iX );
@@ -2318,7 +2382,7 @@
         }
 
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST  
-    if ( transApi )
+    if ( transApi && !backgroundDrawingSuppressed )
         {        
         if(transApi->EffectsDisabled())
             {
@@ -2328,7 +2392,10 @@
         transApi->StopDrawing();
         }
 #else
-    aGc.CancelClippingRect();
+    if ( !backgroundDrawingSuppressed )
+        {
+        aGc.CancelClippingRect();
+        }
 #endif //RD_UI_TRANSITION_EFFECTS_LIST 
     _AKNTRACE_FUNC_EXIT;
     }
@@ -2410,6 +2477,46 @@
     __ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
     
     TRect textRect(aItemRect);
+    
+    CEikListBox* listbox = static_cast<CEikListBox*>( Control() ); 
+    
+    if ( listbox->View()->ItemDrawer()->Flags() 
+            & CListItemDrawer::EMarkingModeEnabled 
+            && iExtension->iMarkingIconArray
+            &&  iExtension->iMarkingIconArray->Count() == 2 )
+        {
+        textRect.iTl.iX += 
+                AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 0 ).LayoutLine().il;
+
+        TAknLayoutRect layoutRect;
+        layoutRect.LayoutRect( aItemRect, 
+                AknLayoutScalable_Avkon::list_double_graphic_pane_g1( 0 ) );
+        
+        CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked
+
+        if ( listbox->View()->ItemIsSelected( 
+                iExtension->iCurrentlyDrawnItemIndex ) )
+            {
+            icon = (*iExtension->iMarkingIconArray)[0];
+            }
+        
+        CFbsBitmap* bitmap = icon->Bitmap();
+
+        if ( bitmap )
+            {
+            TSize size( bitmap->SizeInPixels() ); // set size if not already
+            TSize targetSize( layoutRect.Rect().Size() );
+            
+            if ( size.iWidth != targetSize.iWidth && size.iHeight != targetSize.iHeight )
+                {
+                AknIconUtils::SetSize( bitmap, targetSize,
+                        EAspectRatioPreservedAndUnusedSpaceRemoved ); 
+                }
+
+            aGc.BitBltMasked( layoutRect.Rect().iTl, bitmap, TRect( layoutRect.Rect().Size() ), icon->Mask(), EFalse );
+            }
+        }
+    
     const TColors *subcellColors = &aColors;
 
     TInt lastSubCell = Min( LastSubCell(), KMaxSubCellIndex );
@@ -2433,7 +2540,7 @@
     
     if ( iExtension->iSubCellsMightIntersect )
         {
-        CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, aItemRect );
+        CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, textRect );
         }
 
     TInt SCindex=0;
@@ -2936,9 +3043,9 @@
     {
     _AKNTRACE_FUNC_ENTER;
     const TRect &aItemRect = aRect;
-    
-    DrawPopupHighlight(aGc, aItemRect, aHighlight);
-    
+
+    DrawDefaultHighlight( aGc, aItemRect, aHighlight );
+
     // Draw the actual items.
     DrawFormatted(aProperties,aGc,aText,aItemRect,aHighlight,aColors);
     _AKNTRACE_FUNC_EXIT;
@@ -3041,43 +3148,6 @@
     _AKNTRACE_FUNC_EXIT;
     }
 
-void CFormattedCellListBoxData::DrawSettingHighlight(CWindowGc &aGc, const TRect &aItemRect, TBool aHighlight) const
-    {
-    _AKNTRACE_FUNC_ENTER;
-    DrawDefaultHighlight( aGc, aItemRect, aHighlight );
-    _AKNTRACE_FUNC_EXIT;
-    }
-
-void CFormattedCellListBoxData::DrawPopupHighlight(CWindowGc &aGc, const TRect &aItemRect, TBool aHighlight) const
-    {
-    _AKNTRACE_FUNC_ENTER;
-    DrawDefaultHighlight( aGc, aItemRect, aHighlight );
-    _AKNTRACE_FUNC_EXIT;
-    }
-
-void CFormattedCellListBoxData::DrawPopupFrame(CWindowGc &aGc) const
-    {
-    _AKNTRACE_FUNC_ENTER;
-    __ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
-    CCoeControl* control = Control();
-
-    if ( control )
-        {
-        aGc.SetPenStyle( CGraphicsContext::ENullPen );
-
-        TBool done = AknsDrawUtils::Background( AknsUtils::SkinInstance(), 
-                                                iExtension->iPopupFrame, 
-                                                control, 
-                                                aGc, 
-                                                control->Rect() );
-        
-        if ( !done )
-            {
-            aGc.Clear( control->Rect() );
-            }
-        }
-    _AKNTRACE_FUNC_EXIT;
-    }
 
 void CFormattedCellListBoxData::SetWordWrappedSubcellIndices(
     TInt aFirstIndex,
@@ -4107,27 +4177,81 @@
     {
     _AKNTRACE_FUNC_ENTER;
     __ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
-    
-    TRect aRect(aItemRect);
-    const TColors *subcellColors = &aColors;
+    _AKNTRACE( "DrawFormattedOld: aText=%S, aItemRect=(%d,%d,%d,%d)",
+               aText, aItemRect.iTl.iX,
+               aItemRect.iTl.iY,
+               aItemRect.iBr.iX, 
+               aItemRect.iBr.iY );
+
+    TRect itemRect( aItemRect );
     
-    TInt lastSubCell=LastSubCell();
-    if (lastSubCell==KErrNotFound)
+    TInt lastSubCell = LastSubCell();
+    if ( lastSubCell == KErrNotFound )
         {
-        aGc.UseFont(CEikonEnv::Static()->NormalFont());
-        aGc.DrawText(TPtrC(),aRect,0); // use draw text so that don't need to change pen color/style
+        aGc.UseFont( CEikonEnv::Static()->NormalFont() );
+        // Use draw text so that there's no need to change pen color/style.
+        aGc.DrawText( TPtrC(), itemRect, 0 );
         aGc.DiscardFont(); // Release the font cache
         _AKNTRACE_FUNC_EXIT;
         return;
         }
+    
+    CEikListBox* listbox = static_cast<CEikListBox*>( Control() ); 
+    
+    if ( listbox->View()->ItemDrawer()->Flags()
+            & CListItemDrawer::EMarkingModeEnabled &&
+         iExtension->iMarkingIconArray && 
+         iExtension->iMarkingIconArray->Count() == 2 )
+        {
+        itemRect.iTl.iX +=
+            AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 0 ).LayoutLine().il;
+
+        TAknLayoutRect layoutRect;
+        layoutRect.LayoutRect(
+            aItemRect, 
+            AknLayoutScalable_Avkon::list_double_graphic_pane_g1( 0 ) );
+        TRect iconRect( layoutRect.Rect() );
+        
+        CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked
+
+        if ( listbox->View()->ItemIsSelected( 
+                iExtension->iCurrentlyDrawnItemIndex ) )
+            {
+            icon = (*iExtension->iMarkingIconArray)[0];
+            }
+        
+        CFbsBitmap* bitmap = icon->Bitmap();
+
+        if ( bitmap )
+            {
+            TSize size( bitmap->SizeInPixels() ); // set size if not already
+            TSize targetSize( layoutRect.Rect().Size() );
+            
+            if ( size.iWidth != targetSize.iWidth &&
+                 size.iHeight != targetSize.iHeight )
+                {
+                AknIconUtils::SetSize( bitmap, targetSize,
+                        EAspectRatioPreservedAndUnusedSpaceRemoved ); 
+                }
+
+            aGc.BitBltMasked( iconRect.iTl,
+                              bitmap,
+                              TRect( iconRect.Size() ),
+                              icon->Mask(),
+                              EFalse );
+            }
+        }
+    
+    const TColors* subcellColors = &aColors;
+    
     const CFont* font=SubCellFont(0);
     if (font==NULL)
         {
         font=CEikonEnv::Static()->NormalFont();
         }
     
-    TRect textRect=aRect;
-    textRect.iBr.iX=aRect.iTl.iX;
+    TRect textRect( itemRect );
+    textRect.iBr.iX = itemRect.iTl.iX;
     TInt subcell=0;
     TInt subcell2=0;
 
@@ -4237,7 +4361,7 @@
                     }
                 
                 // This is called O(N^2) times - Do not put anything extra to it, it'll slow down drawing!
-                TRect bRect2 = TRect(SubCellPosition(subcell2),SubCellSize(subcell2));
+                TRect bRect2( SubCellPosition( subcell2 ), SubCellSize( subcell2 ) );
                 if (cRect.Intersects(bRect2) && bRect.Intersects(bRect2) && !istrans && !SubCellIsTransparent(subcell2)) 
                     {
                     cRect.iBr.iX = bRect2.iTl.iX;
@@ -4255,7 +4379,7 @@
                     }
                 
                 // This is called O(N^2) times - Do not put anything extra to it, it'll slow down drawing!
-                TRect bRect2 = TRect(SubCellPosition(subcell2),SubCellSize(subcell2));
+                TRect bRect2( SubCellPosition( subcell2 ), SubCellSize( subcell2 ) );
                 if (cRect.Intersects(bRect2) && bRect.Intersects(bRect2) && !istrans && !SubCellIsTransparent(subcell2)) 
                     {
                     cRect.iTl.iX = bRect2.iBr.iX;
@@ -4313,15 +4437,17 @@
         
         if ( layoutMirrored ) 
             {
-            TRect bRect = TRect(sc->iPosition,sc->iSize);
-            TRect cRect2 = TRect(bRect.iTl+TSize(m.iLeft,m.iTop),bRect.Size()-TSize(m.iRight+m.iLeft,m.iBottom+m.iTop));
+            TRect bRect( sc->iPosition, sc->iSize );
+            TRect cRect2( bRect.iTl + TSize( m.iLeft, m.iTop ),
+                          bRect.Size() - TSize( m.iRight + m.iLeft,
+                                                m.iBottom + m.iTop ) );
             
             TInt shift = (cRect2.Size() - sc->iRealTextSize).iWidth;
             cRect.iTl.iX += shift;
             cRect.iBr.iX += shift;
             }
         
-        textRect=TRect(aItemRect.iTl+cRect.iTl,cRect.Size());
+        textRect = TRect( itemRect.iTl + cRect.iTl, cRect.Size() );
         
         if (sc->iUseSubCellColors)
             {
@@ -4451,8 +4577,7 @@
                                    iExtension->i2ndLineMarquee;
                 
                 TBool marqueeDisabled =
-                        static_cast<CEikListBox*>(
-                            Control() )->View()->ItemDrawer()->Flags() & CListItemDrawer::EDisableMarquee;
+                    listbox->View()->ItemDrawer()->Flags() & CListItemDrawer::EDisableMarquee;
                 
                 if ( aHighlight && iExtension->IsMarqueeOn() && clipped && !marqueeDisabled )
                     {                    
--- a/uifw/AvKon/src/eikslb.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/eikslb.cpp	Tue May 11 16:27:42 2010 +0300
@@ -87,9 +87,7 @@
         }
         
     FormattedCellData()->SetCurrentlyDrawnItemIndex( aItemIndex );
-
-    FormattedCellData()->DrawSettingHighlight( *iGc, aItemTextRect, aItemIsCurrent );
-
+    FormattedCellData()->DrawDefaultHighlight( *iGc, aItemTextRect, aItemIsCurrent );
     TBool drawBackground = ETrue;
     TPtrC temp = iModel->ItemText( aItemIndex );
     TPtrC columnText;
--- a/uifw/AvKon/srcdata/avkon.rss	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/srcdata/avkon.rss	Tue May 11 16:27:42 2010 +0300
@@ -10187,6 +10187,54 @@
         };
     }
 
+
+// ---------------------------------------------------------------------------
+// r_avkon_menupane_mark_multiple
+// Multiple marking mode menu pane.
+// ---------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_avkon_menupane_mark_multiple
+    {
+    items =
+        {
+        MENU_ITEM
+            {
+            command = EAknCmdMarkingModeMarkOne;
+            txt = qtn_options_list_mark_one;
+            flags = EEikMenuItemSpecific;
+            },
+        MENU_ITEM
+            {
+            command = EAknCmdMarkingModeMarkAll;
+            txt = qtn_options_list_mark_all;
+            flags = EEikMenuItemDimmed;
+            },
+        MENU_ITEM
+            {
+            command = EAknCmdMarkingModeUnmarkAll;
+            txt = qtn_options_list_unmark_all;
+            flags = EEikMenuItemDimmed;
+            },
+        MENU_ITEM
+            {
+            command = EAknCmdMarkingModeEnter;
+            txt = qtn_options_list_mark_multiple;
+            }
+        };
+    }
+
+
+// ---------------------------------------------------------------------------- 
+// r_marking_mode_navi_pane
+// Multiple marking mode navi pane
+// ---------------------------------------------------------------------------- 
+//
+RESOURCE NAVI_LABEL r_marking_mode_navi_pane
+    {
+    txt = qtn_navi_pane_marking_mode;
+    }
+
+
 RESOURCE COMBINED_PANE r_avkon_status_pane_combined_default
     {
     panes =
@@ -10238,3 +10286,4 @@
     }
 
 // End of File
+
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestappfrm/src/bctestaknapplication.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestappfrm/src/bctestaknapplication.cpp	Tue May 11 16:27:42 2010 +0300
@@ -14,7 +14,7 @@
 * Description:
 *
 */
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include <aknapp.h>
 #include <eikenv.h>
 #include <eikappui.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestdocandinit/inc/bctestDocAndInitcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestdocandinit/inc/bctestDocAndInitcase.h	Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
 #include <documenthandler.h>
 #include <eikcolib.h>
 #include <eikctlib.h>
-#include <aknserverapp.h> 
+#include <AknServerApp.h> 
 
 #include "bctestcase.h"
 
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctesteditor/inc/bctesteditorcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctesteditor/inc/bctesteditorcase.h	Tue May 11 16:27:42 2010 +0300
@@ -24,7 +24,7 @@
 #include <Aknedsts.h>
 #include <aknipfed.h>
 #include <aknnumed.h>
-#include <aknnumedwin.h>
+#include <AknNumEdwin.h>
 #include <eikccpu.h>
 #include <eikedwin.h>
 #include <eikfpne.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlabelinfoindicators/src/bctestlabelinfoindicatorscase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlabelinfoindicators/src/bctestlabelinfoindicatorscase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
 #include <avkon.hrh>  
 #include <akninfopopupnotecontroller.h>     // CAknInfoPopupNoteController
 #include <gulalign.h>                       // TGulAlignmentValue
-#include <aknsconstants.h>                  // KAknsMessageSkinChange
+#include <AknsConstants.h>                  // KAknsMessageSkinChange
 #include <akndef.h>                         // KEikDynamicLayoutVariantSwitch
 #include <aknpictographinterface.h>         // CAknPictographInterface
 #include <e32debug.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -21,7 +21,7 @@
 #include <aknlists.h>
 #include <barsread.h>
 #include <akndef.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <eiktxlbm.h>
 #include <eikclbd.h>
 
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlist/src/bctestlistformatbasecase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlist/src/bctestlistformatbasecase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -21,7 +21,7 @@
 #include <aknlists.h>
 #include <barsread.h>
 #include <akndef.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <eiktxlbm.h>
 #include <eikfrlbd.h>
 
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestserverapp/inc/bctestserverappcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestserverapp/inc/bctestserverappcase.h	Tue May 11 16:27:42 2010 +0300
@@ -20,7 +20,7 @@
 #define BCTEST_SERVERAPPCASE_H
 
 #include "bctestcase.h"
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include <aknwseventobserver.h>
 
 //TUid Kmysimpleserver = { 0x06C22C0C	};
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestserverapp/src/bctestserverappcase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestserverapp/src/bctestserverappcase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -18,7 +18,7 @@
 
 #include <w32std.h>
 #include <coecntrl.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include <avkon.hrh>
 #include <aknwseventobserver.h>
 #include <aknBitmapAnimation.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.1/bctestmisc/src/bctestmisccase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.1/bctestmisc/src/bctestmisccase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -21,7 +21,7 @@
 #include <aknscreenmode.h>
 #include <aknappui.h>
 #include <bctestmisc.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <eikmenub.h>
 #include <aknutils.h>
 
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.2/bctesttouchpane/src/bctesttouchpanecase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.2/bctesttouchpane/src/bctesttouchpanecase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
 #include <aknappui.h>
 #include <akntouchpane.h>
 #include <bctesttouchpane.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <aknutils.h> 
 
 #include "bctesttouchpanecase.h"
--- a/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestappfrm/src/bctestaknapplication.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestappfrm/src/bctestaknapplication.cpp	Tue May 11 16:27:42 2010 +0300
@@ -14,7 +14,7 @@
 * Description:
 *
 */
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include <aknapp.h>
 #include <eikenv.h>
 #include <eikappui.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestdocandinit/inc/bctestDocAndInitcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestdocandinit/inc/bctestDocAndInitcase.h	Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
 #include <documenthandler.h>
 #include <eikcolib.h>
 #include <eikctlib.h>
-#include <aknserverapp.h> 
+#include <AknServerApp.h> 
 
 #include "bctestcase.h"
 
--- a/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestmix50/inc/bctestmix50patchmisc.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestmix50/inc/bctestmix50patchmisc.h	Tue May 11 16:27:42 2010 +0300
@@ -38,7 +38,7 @@
 #include <COECOBS.H>
 #include <eikfnlab.h>
 #include <maknfilefilter.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include <AknsItemData.h>
 #include <AknNoteDialog.h>
 
--- a/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestmix50/src/bctestmix50patchcontrolcase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestmix50/src/bctestmix50patchcontrolcase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -43,7 +43,7 @@
 #include <aknsinglecolumnstyletreelist.h>
 #include <aknsinglestyletreelist.h>
 #include <avkon.mbg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <eikhkeyt.h>
 #include <aknindicatorcontainer.h>
 #include <akninfrm.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/inc/bctestmixmclgeneralcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/inc/bctestmixmclgeneralcase.h	Tue May 11 16:27:42 2010 +0300
@@ -133,6 +133,11 @@
      */
     void TestEditorKineticScrollingL();
     
+    /*
+     * Tests editor's kinetic scrolling related functions.
+     */
+    void TestEnableKineticScrollingPhysicsL();
+
     /**
      * Tests the SuspendPhysics() method in CAknPhysics.
      */
@@ -158,6 +163,12 @@
       */
      void TestItemFinder();
 
+     /**
+      * Tests FindItemDialog.
+      */
+     void TestFindItemDialog();
+
+
 protected: // From base class MAknPhysicsObserver
     
     /**
--- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/src/bctestmixmclgeneralcase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/src/bctestmixmclgeneralcase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -34,6 +34,8 @@
 #include <aknradiobuttonsettingpage.h>
 #include <aknpopupsettingpage.h>  
 #include <ItemFinder.h>
+#include <finditemdialog.h>
+#include <aknphysics.h>
 
 #include "bctestmixmclgeneralcase.h"
 #include "bctestmixmclcontainer.h"
@@ -130,7 +132,9 @@
     TestRadioButtonSettingPageL();
     TestPopupSettingPageL();   
     TestItemFinder();
+    TestFindItemDialog();
     TestEditorKineticScrollingL();
+    TestEnableKineticScrollingPhysicsL();
     TestAknPhysicsSuspendPhysicsL();
     TestAknPhysicsResumePhysicsL();
     TestCbaL();
@@ -521,6 +525,36 @@
     AssertTrueL( ETrue, KEdwinEnableScrolling );
     }
 
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestEnableKineticScrollingPhysicsL
+// ---------------------------------------------------------------------------
+//
+void CBCTestMixMCLGeneralCase::TestEnableKineticScrollingPhysicsL()
+    {
+    CEikEdwin* editor = new ( ELeave ) CEikEdwin;
+    CleanupStack::PushL( editor );
+
+    CAknPhysics* physics ( NULL );
+    AssertTrueL ( CAknPhysics::FeatureEnabled() );
+    CCoeControl* control ( NULL );
+    control = new (ELeave) CCoeControl;
+    CleanupStack::PushL( control );
+
+    physics = CAknPhysics::NewL( *this, control );
+    CleanupStack::PushL( physics );
+
+    editor->EnableKineticScrollingL( physics );
+
+    CleanupStack::PopAndDestroy( physics );
+    CleanupStack::PopAndDestroy( control );
+    CleanupStack::PopAndDestroy( editor );
+
+    _LIT( KEdwinEnableScrollingPhysics,
+            "CEikEdwin::TestEnableKineticScrollingPhysicsL tested" );
+    AssertTrueL( ETrue, KEdwinEnableScrollingPhysics );
+    }
+
 // ---------------------------------------------------------------------------
 // CBCTestMixMCLGeneralCase::TestAknPhysicsSuspendPhysicsL
 // ---------------------------------------------------------------------------
@@ -649,6 +683,28 @@
     }
 
 
+// -----------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestFindItemDialog
+// -----------------------------------------------------------------------------
+//
+void CBCTestMixMCLGeneralCase::TestFindItemDialog()
+    {
+    _LIT( KEnableSingleClick,
+            "CFindItemDialog::EnableSingleClick() tested" );
+    _LIT( KUrlDes, "http://www.symbian.com" );
+
+    CFindItemDialog* dialog = CFindItemDialog::NewL( KUrlDes,
+            CFindItemEngine::EFindItemSearchURLBin );
+    CleanupStack::PushL( dialog );
+
+    dialog->EnableSingleClick ( EFalse );
+    dialog->EnableSingleClick ( ETrue );
+    AssertTrueL( ETrue, KEnableSingleClick );
+
+    CleanupStack::PopAndDestroy( dialog );
+    }
+
+
 // ---------------------------------------------------------------------------
 // CBCTestMixMCLGeneralCase::HandleFindItemEventL
 // ---------------------------------------------------------------------------
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknapp.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknapp.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwaknapp.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of app.
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWAKNAPP_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknappui.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknappui.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwaknappui.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of appui.
-*  Version     : %version: 2 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWAKNAPPUI_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwakncontainer.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwakncontainer.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwakncontainer.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of container.
-*  Version     : %version: 2 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWAKNCONTAINER_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwakndocument.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwakndocument.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwakndocument.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of document
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWAKNDOCUMENT_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknview.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknview.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwaknview.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of view
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWAKNVIEW_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwcase.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwcase.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of test case
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWCASE_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwserviceifmenu.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwserviceifmenu.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwserviceifmenu.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for testing CAiwServiceIfMenu and CAiwServiceIfBase
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWSERVICEIFMENU_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknanimdata.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknanimdata.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknanimdata.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for testing APIs in aknAnimData.h
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_BCTESTDOMAKNANIMATIONDATA_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknanimview.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknanimview.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknanimview.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for testing APIs of CAknAnimatedView
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_BCTESTDOMAKNANIMATEDVIEW_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknbatterypane.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknbatterypane.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestaknbattery.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for testing the protected methods of aknbattery.h
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomakncharmap.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomakncharmap.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomakncharmap.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for indirectly testing APIs in akncharmap.h 
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMCAKNCHARMAP_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknctrlcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknctrlcase.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknctrlcase.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of test case
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknecsdetector.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknecsdetector.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknecsdetector.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for testing the protected methods of CAknEcsDetector
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknindicatorcontainer.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknindicatorcontainer.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknindicatorcontainer.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for indirectly testing APIs in aknindicator.h 
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAKNINDICATORCONTAINER_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknnoctrlcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknnoctrlcase.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknnoctrlcase.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of test case
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAKNNOCTRLCASE_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknrclasscase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknrclasscase.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknrclasscase.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of test case
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomuiservershutdownapps.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomuiservershutdownapps.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomuiservershutdownapps.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : test the asynchronous method RAknUiServer::ShutdownApps().
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMUISERVERSHUTDOWNAPPS_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomuiserverunlockmedia.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomuiserverunlockmedia.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomuiserverunlockmedia.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : test the asynchronous methods of RAknUiServer.
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMUISERVERUNLOCKMEDIA_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/inc/bctestdomadapter.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/inc/bctestdomadapter.h	Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
 #ifndef C_CBCTESTDOMADAPTER_H
 #define C_CBCTESTDOMADAPTER_H
 
-#include <aknlayout2def.h>
+#include <AknLayout2Def.h>
 #include <aknlayout2datadef.h>
 
 class CBCTestDomAdapter: public CBase
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/src/bctestdomlayoudatacase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/src/bctestdomlayoudatacase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -20,8 +20,8 @@
 #include <coecntrl.h>
 #include <eikenv.h>
 
-#include <aknlayout2def.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2Def.h>
+#include <AknLayout2ScalableDef.h>
 
 
 #include "bctestdomlayoutdatacase.h"
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/src/bctestdomskincase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/src/bctestdomskincase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
 #include <w32std.h>
 #include <coecntrl.h>   
 #include <eikenv.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <aknsdrawutils.h>
 #include <aknsimageattributedata.h>
 
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknapp.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknapp.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwaknapp.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of app.
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWAKNAPP_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknappui.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknappui.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwaknappui.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of appui.
-*  Version     : %version: 3 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWAKNAPPUI_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwakncontainer.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwakncontainer.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwakncontainer.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of container.
-*  Version     : %version: 2 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWAKNCONTAINER_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwakndocument.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwakndocument.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwakndocument.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of document
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWAKNDOCUMENT_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknview.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknview.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwaknview.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of view
-*  Version     : %version: 2 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWAKNVIEW_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwcase.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwcase.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of test case
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWCASE_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwserviceifmenu.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwserviceifmenu.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaiwserviceifmenu.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for testing CAiwServiceIfMenu and CAiwServiceIfBase
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAIWSERVICEIFMENU_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknanimdata.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknanimdata.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknanimdata.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for testing APIs in aknAnimData.h
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_BCTESTDOMAKNANIMATIONDATA_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknanimview.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknanimview.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknanimview.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for testing APIs of CAknAnimatedView
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_BCTESTDOMAKNANIMATEDVIEW_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknbatterypane.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknbatterypane.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestaknbattery.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for testing the protected methods of aknbattery.h
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomakncharmap.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomakncharmap.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomakncharmap.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for indirectly testing APIs in akncharmap.h 
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMCAKNCHARMAP_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknctrlcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknctrlcase.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknctrlcase.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of test case
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknecsdetector.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknecsdetector.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknecsdetector.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for testing the protected methods of CAknEcsDetector
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknindicatorcontainer.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknindicatorcontainer.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknindicatorcontainer.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : for indirectly testing APIs in aknindicator.h 
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAKNINDICATORCONTAINER_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknnoctrlcase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknnoctrlcase.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknnoctrlcase.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of test case
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMAKNNOCTRLCASE_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknrclasscase.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknrclasscase.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomaknrclasscase.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : declaration of test case
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomuiservershutdownapps.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomuiservershutdownapps.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomuiservershutdownapps.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : test the asynchronous method RAknUiServer::ShutdownApps().
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMUISERVERSHUTDOWNAPPS_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomuiserverunlockmedia.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomuiserverunlockmedia.h	Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
 /*
-* ============================================================================
-*  Name        : bctestdomuiserverunlockmedia.h
-*  Part of     : BCTest / bctestdomaiwakn       
-*  Description : test the asynchronous methods of RAknUiServer.
-*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
-*  Copyright © 2007.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
 */
 
 #ifndef C_CBCTESTDOMUISERVERUNLOCKMEDIA_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/inc/bctestdomadapter.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/inc/bctestdomadapter.h	Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
 #ifndef C_CBCTESTDOMADAPTER_H
 #define C_CBCTESTDOMADAPTER_H
 
-#include <aknlayout2def.h>
+#include <AknLayout2Def.h>
 #include <aknlayout2datadef.h>
 
 class CBCTestDomAdapter: public CBase
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/src/bctestdomlayoudatacase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/src/bctestdomlayoudatacase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -20,8 +20,8 @@
 #include <coecntrl.h>
 #include <eikenv.h>
 
-#include <aknlayout2def.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2Def.h>
+#include <AknLayout2ScalableDef.h>
 
 
 #include "bctestdomlayoutdatacase.h"
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/src/bctestdomskincase.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/src/bctestdomskincase.cpp	Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
 #include <w32std.h>
 #include <coecntrl.h>
 #include <eikenv.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 #include <aknsdrawutils.h>
 #include <aknsimageattributedata.h>
 
--- a/uifw/AvKon/tsrc/bc/script/codetest_script/output/api_table.bak.xml	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/script/codetest_script/output/api_table.bak.xml	Tue May 11 16:27:42 2010 +0300
@@ -56637,7 +56637,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::NewL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56649,7 +56649,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::ConstructFromResourceL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56661,7 +56661,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::ConstructL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56673,7 +56673,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::SetValueL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56685,7 +56685,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::SetUnsetValue]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56697,7 +56697,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::GetTextAsInteger]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56709,7 +56709,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::SetMinimumIntegerValue]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56721,7 +56721,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::SetMaximumIntegerValue]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56733,7 +56733,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::PrepareForFocusLossL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56745,7 +56745,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::HandleResourceChange]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56757,7 +56757,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::OfferKeyEventL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56769,7 +56769,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::HandlePointerEventL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56781,7 +56781,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::CheckNumber]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56793,7 +56793,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::ExtensionInterface]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
@@ -56805,7 +56805,7 @@
 <O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
 <P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
 <FUNCTION><![CDATA[CAknIntegerEdwin::Reserved_3]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
 <K_BLOCK><![CDATA[0]]></K_BLOCK>
 </APIITEM>
 <APIITEM>
--- a/uifw/EikStd/EABI/EIKCOCTLU.DEF	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/EABI/EIKCOCTLU.DEF	Tue May 11 16:27:42 2010 +0300
@@ -2012,4 +2012,6 @@
 	_ZN18CAknItemActionMenu19RegisterCollectionLER14MAknCollectionP15MObjectProvider @ 2011 NONAME
 	_ZN25AknItemActionMenuRegister30RemoveConstructingMenuBarOwnerEP15MObjectProvider @ 2012 NONAME
 	_ZN11CEikListBox18IsHighlightEnabledEv @ 2013 NONAME
+	_ZN11CEikListBox14SetMarkingModeEi @ 2014 NONAME
+	_ZN11CEikListBox22SetMarkingModeObserverEP23MAknMarkingModeObserver @ 2015 NONAME
 
--- a/uifw/EikStd/bwins/EIKCOCTLU.DEF	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/bwins/EIKCOCTLU.DEF	Tue May 11 16:27:42 2010 +0300
@@ -1623,3 +1623,6 @@
 	?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)
+	?SetMarkingModeObserver@CEikListBox@@QAEXPAVMAknMarkingModeObserver@@@Z @ 1625 NONAME ; void CEikListBox::SetMarkingModeObserver(class MAknMarkingModeObserver *)
+	?SetMarkingMode@CEikListBox@@QAEXH@Z @ 1626 NONAME ; void CEikListBox::SetMarkingMode(int)
+
--- a/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicator.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicator.h	Tue May 11 16:27:42 2010 +0300
@@ -255,8 +255,7 @@
     */
     void CreateScrollBarItemsL();    
 
-    TInt ScrollHandleMaxVisibleSizeInPixels();
-    TInt HandleBackgroundMinSizeInPixels();
+    TInt HandleMaxSizeInPixels();
     TInt HandleMinSizeInPixels();
 
     /**
@@ -267,14 +266,6 @@
     */
     void DrawBackground() const;
     
-    /**
-    * Layout scrollbar handle
-    * 
-    * @since    3.1
-    *
-    */
-    void LayoutHandleGraphics();
-
     CAknDoubleSpanScrollIndicatorItem* LoadScrollIndicatorItemL(
             const TAknsItemID &aTopId,
             const TAknsItemID &aMidId,
@@ -293,7 +284,6 @@
     TInt iFieldPosition;        // Size of the current field. (Optional double span)
     TInt iFieldSize;            // Position inside the current field. (Optional double span)
     TBool iOwnsWindow;            // Is window owning
-    TInt iSpare;
 
     TRect iBackgroundRect;       // Rect for scrollbar background.
     TRect iHandleBackgroundRect; // Rect for scrollbar handle background.
@@ -317,8 +307,17 @@
     CAknDoubleSpanScrollIndicatorItem* iHighlightHandleBar;
  
     TInt iHeadItemSize;
-    TInt iMidItemSize;
     TInt iTailItemSize;
+
+    /**
+     * Minimum handle size.
+     */
+    TInt iHandleMinSize;
+    
+    /**
+     * Maximum handle size.
+     */
+    TInt iHandleMaxSize;
     };
 
 #endif
--- a/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicatorItem.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicatorItem.h	Tue May 11 16:27:42 2010 +0300
@@ -94,40 +94,11 @@
         );
 
 
-   /**
-    * Creates a new bitmap and a mask based on the given skin item id. 
-    * New bitmap will be rotated 90 degrees agains clock direction if wanted.
-    *
-    * @since    2.6
-    * @param    aID            Skin item id for the bitmap and mask.
-    * @param    aBitmap        When this method returns this will contain a poiter
-    *                          to a new bitmap.
-    * @param    aMask          When this method returns this will contain a poiter
-    *                          to a new mask bitmap.
-    * @param    aRotated       If ETrue the skin source bitmap data is rotated
-    *                          90 degrees.
-    *
-    */
-    void CreateSkinnedBitmapAndMaskL(MAknsSkinInstance* aInstance, 
-        const TAknsItemID& aID,
-        CFbsBitmap*& aBitmap, 
-        CFbsBitmap*& aMask,
-        TBool aRotated);
-
-
 public: // data
     TAknsItemID iTopId;
     TAknsItemID iMidId;
     TAknsItemID iBottomId;
-
-    CFbsBitmap* iTop;
-	CFbsBitmap* iTopMask;
-	CFbsBitmap* iMiddle;
-	CFbsBitmap* iMiddleMask;
-    CFbsBitmap* iBottom;
-    CFbsBitmap* iBottomMask;
     TSize       iItemSize;
-
     };
 
 #endif
--- a/uifw/EikStd/coctlinc/aknitemactionmenuregister.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlinc/aknitemactionmenuregister.h	Tue May 11 16:27:42 2010 +0300
@@ -326,14 +326,6 @@
     static AknItemActionMenuRegister* CreateInstanceL();
 
     /**
-     * Sets constructing menu bar owner and checks if the current is a dialog.
-     * And when setting the correct menu bar owner from a dialog to NULL 
-     * checking if a correct menubar can be found for the unregistered 
-     * item action menu. 
-     */
-    void DoSetConstructingMenuBarOwnerL( MObjectProvider* aMenuBarOwner ); 
-
-    /**
      * Sets the current constructing menubar owner to NULL if it matches to
      * aMenuBarOwner. Otherwise constructing menubar owner is not modified.
      * 
@@ -404,11 +396,6 @@
     MObjectProvider* iMenuBarOwner;
 
     /**
-     * Indicates if current menubar owner is a dialog
-     */
-    TBool iIsConstructingDialog; 
-    
-    /**
      * Unregistered menu data.
      */
     RArray<TAknUnregisteredMenuData> iUnregisteredMenus;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/EikStd/coctlinc/aknmarkingmode.h	Tue May 11 16:27:42 2010 +0300
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2009 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Marking mode handler.
+*
+*/
+
+#ifndef C_AKNMARKINGMODE_H
+#define C_AKNMARKINGMODE_H
+
+#include <e32base.h>
+
+class CAknNavigationDecorator;
+class CAknItemActionMenu;
+class MAknCollection;
+class MAknMarkingCollection;
+
+typedef RPointerArray<MAknCollection> CollectionArray;
+
+/**
+ * Marking mode handler.
+ *
+ * @lib eikcoctl
+ * @since S60 v5.2
+ */
+NONSHARABLE_CLASS( CAknMarkingMode ) : public CBase
+    {
+
+public:
+
+    /**
+     * Two-phased constructor.
+     */
+    static CAknMarkingMode* NewL(
+            CAknItemActionMenu& aItemActionMenu,
+            CollectionArray& aArray );
+
+    /**
+     * Destructor.
+     */
+    virtual ~CAknMarkingMode();
+
+    /**
+     * Sets visible collection multiple marking state.
+     *
+     * @internal
+     * @param aActive ETrue if multiple marking should be active.
+     */
+    void SetCollectionMultipleMarkingState( TBool aActive );
+    
+    /**
+     * Ends marking mode if collection allows it
+     */
+    void TryExitMarkingMode();
+
+    /**
+     * Returns ETrue if multiple marking state is active.
+     *
+     * @internal
+     * @return ETrue if multiple marking is active.
+     */
+    TBool MultipleMarkingActive() const;
+
+    /**
+     * Returns ETrue if there are marked items in visible list that is
+     * in multiple marking state.
+     *
+     * @internal
+     * @return ETrue if items are currently marked.
+     */
+    TBool MarkedItems() const;
+    
+    /**
+     * Returns ETrue if the collection has no items
+     * 
+     * @internal
+     * @return ETrue if there are no items
+     */
+    TBool CollectionEmpty() const;
+            
+    /**
+     * Marks all items in the collection.
+     */
+    void MarkAllL();
+    
+    /**
+     * Unmarks all items in the collection.
+     */
+    void UnmarkAll();
+    
+    /**
+     * Marks the currently selected item in the collection.
+     */
+    void MarkCurrentItemL();
+    
+    /**
+     * Returns ETrue if current item can be marked
+     * 
+     * @internal
+     * @return ETrue if current item can be marked
+     */
+    TBool CurrentItemMarkable();
+
+private:
+
+    /**
+     * C++ constructor.
+     */
+    CAknMarkingMode(
+            CAknItemActionMenu& aItemActionMenu,
+            CollectionArray& aArray );
+
+    /**
+     * Returns marking collection received from aCollection.
+     * 
+     * @param aCollection Collection.
+     * @return Marking collection object.
+     */
+    static MAknMarkingCollection* MarkingCollection(
+            MAknCollection& aCollection );
+
+    /**
+     * Returns marking collection.
+     * 
+     * @return Marking collection object.
+     */
+    MAknMarkingCollection* MarkingCollection();
+    
+    /**
+     * Returns the activated marking collection i.e the one with marking mode
+     * turned on.
+     * 
+     * @return Active marking collection.
+     */
+    MAknMarkingCollection* ActiveMarkingCollection();
+
+    /**
+     * Updates navi pane when entering and exiting marking mode
+     * 
+     * @param  aEnable @c ETrue to set marking mode related text
+     *                 @c EFalse to remove marking mode related text
+     */
+    void UpdateMarkingModeNaviPaneL( TBool aEnable );
+    
+private: // data
+
+    /**
+     * Collection array owned by CAknItemActionMenu.
+     * Not own.
+     */
+    CollectionArray& iCollections;
+
+    /**
+     * Item action menu that owns this marking mode handler.
+     * Not own.
+     */
+    CAknItemActionMenu& iItemActionMenu;
+    
+    /**
+     * Marking mode navi pane decorator
+     */
+    CAknNavigationDecorator* iMarkingDecorator;     
+    };
+
+#endif // C_AKNMARKINGMODE_H
--- a/uifw/EikStd/coctlsrc/AknButton.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknButton.cpp	Tue May 11 16:27:42 2010 +0300
@@ -1979,10 +1979,8 @@
                 {
                 // show press changes
                 iButtonPressed = ETrue;
-                if ( iExtension )
-                    {
-                    iExtension->iPrePointerPos.SetXY( -1, -1 );
-                    }
+                iExtension->iPrePointerPos.SetXY( -1, -1 );
+                
                 if ( NeedsRedrawWhenPressed() )
                     {
                     DrawNow();
@@ -2146,7 +2144,7 @@
 EXPORT_C void CAknButton::SizeChanged()
     {
     //Reset state if observer modified the rectangel.
-    if ( iButtonPressed && iExtension && !Rect().Contains( iExtension->iPrePointerPos ) )
+    if ( iButtonPressed && !Rect().Contains( iExtension->iPrePointerPos ) )
         {
         ResetState();               
         }
--- a/uifw/EikStd/coctlsrc/AknClearer.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknClearer.cpp	Tue May 11 16:27:42 2010 +0300
@@ -309,11 +309,6 @@
         ( usualSpLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL ) ||
         ( idleSpLayout  == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE );
     
-    // Check that if in landscape mode statuspane is changed to stacon pane
-    TBool staconPaneUsedInLandscape = 
-        ( usualSpLayout != R_AVKON_STATUS_PANE_LAYOUT_USUAL ) &&
-        ( usualSpLayout != R_AVKON_STATUS_PANE_LAYOUT_USUAL_MIRRORED );
-
     TBool flatStatuspaneusedInLandscape =
         ( usualSpLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ) ||
         ( usualSpLayout == R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
--- a/uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp	Tue May 11 16:27:42 2010 +0300
@@ -93,13 +93,13 @@
 
     DrawTiled(gc, iHandleRect, handleBar);
     }
+
 void CAknDoubleSpanScrollIndicator::UpdateScrollBarLayout()
     {
     iHeadItemSize = 12;
-    iMidItemSize = 12 * 5;
     iTailItemSize = 12;
     
-    TRect rect = Rect();
+    TRect rect( Rect() );
     if(rect.IsEmpty())
         {        
         return;
@@ -114,18 +114,13 @@
     TAknLayoutRect layRect;
     TAknWindowComponentLayout layout = AknLayoutScalable_Avkon::scroll_bg_pane_g1( varietyIndex ); //top
     layRect.LayoutRect( rect, layout.LayoutLine() );    
-    TSize newSize = layRect.Rect().Size();  
+    TSize newSize( layRect.Rect().Size() );  
     iHeadItemSize = (iOrientation == CEikScrollBar::EVertical?newSize.iHeight:newSize.iWidth);
     
     layout = AknLayoutScalable_Avkon::scroll_bg_pane_g3(varietyIndex); // bottom
     layRect.LayoutRect(rect, layout.LayoutLine());
     newSize = layRect.Rect().Size();
     iTailItemSize =  (iOrientation == CEikScrollBar::EVertical?newSize.iHeight:newSize.iWidth);
-        
-    layout = AknLayoutScalable_Avkon::scroll_bg_pane_g2(varietyIndex); //middle
-    layRect.LayoutRect(rect, layout.LayoutLine());
-    newSize = layRect.Rect().Size();    
- //   iMidItemSize = (iOrientation == CEikScrollBar::EVertical?newSize.iHeight:newSize.iWidth) * 5;
     }
 
 void CAknDoubleSpanScrollIndicator::DrawTiled(
@@ -155,7 +150,7 @@
         midRect.iTl.iY += headRect.Height();
         midRect.iBr.iY -= tailRect.Height();
         midDrawLength = midRect.Height();
-        midSize.SetSize(midRect.Width(), iMidItemSize);
+        midSize.SetSize(midRect.Width(), midDrawLength);
         }
     else
         {
@@ -165,7 +160,7 @@
         midRect.iTl.iX += iHeadItemSize;
         midRect.iBr.iX -= iTailItemSize;
         midDrawLength = midRect.Width();
-        midSize.SetSize(iMidItemSize, midRect.Height());
+        midSize.SetSize(midDrawLength, midRect.Height());
         }
    
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
@@ -175,28 +170,20 @@
     AknsUtils::GetCachedMaskedBitmap(skin, aIndicatorItem->iTopId, bmp, mask);
     AknIconUtils::SetSize(bmp, headRect.Size(), EAspectRatioNotPreserved);
     AknIconUtils::SetSize(mask, headRect.Size(), EAspectRatioNotPreserved);
-    aGc.BitBltMasked(headRect.iTl, bmp, TRect(TPoint(0, 0), headRect.Size()), mask, ETrue);
+    aGc.BitBltMasked(headRect.iTl, bmp, TRect(headRect.Size()), mask, ETrue);
     
     AknsUtils::GetCachedMaskedBitmap(skin, aIndicatorItem->iMidId, bmp, mask);
     AknIconUtils::SetSize(bmp, midSize, EAspectRatioNotPreserved);
     AknIconUtils::SetSize(mask, midSize, EAspectRatioNotPreserved);
 
-    TInt count = midDrawLength / iMidItemSize;
     TPoint destPos(midRect.iTl.iX, midRect.iTl.iY);
-    TRect sourRect(TPoint(0, 0), bmp->SizeInPixels());
-    for(TInt i = 0; i < count; i++)
-        {
-        aGc.BitBltMasked(destPos, bmp, sourRect, mask, ETrue);
-        iOrientation == CEikScrollBar::EVertical?destPos.iY += iMidItemSize : destPos.iX += iMidItemSize;
-        }
-    iOrientation == CEikScrollBar::EVertical?sourRect.iBr.iY = midRect.Height() % iMidItemSize
-                    :sourRect.iBr.iX = midRect.Width() % iMidItemSize;
+    TRect sourRect(bmp->SizeInPixels());
     aGc.BitBltMasked(destPos, bmp, sourRect, mask, ETrue);
 
     AknsUtils::GetCachedMaskedBitmap(skin, aIndicatorItem->iBottomId, bmp, mask);
     AknIconUtils::SetSize(bmp, tailRect.Size(), EAspectRatioNotPreserved);
     AknIconUtils::SetSize(mask, tailRect.Size(), EAspectRatioNotPreserved);
-    aGc.BitBltMasked(tailRect.iTl, bmp, TRect(TPoint(0, 0), tailRect.Size()), mask, ETrue);
+    aGc.BitBltMasked(tailRect.iTl, bmp, TRect(tailRect.Size()), mask, ETrue);
     }
 
 void CAknDoubleSpanScrollIndicator::CalculateRects()
@@ -258,21 +245,9 @@
         scrollBarHeightInPixels = iBackgroundRect.Height();
         }
     
-    // The code block below was probably used to prevent
-    // a truncation-vs-rounding error from happening
-    /*
-    if ((checkedWindowSize > 0) && (checkedScrollSpan > 0))
-        {
-        if((checkedFocusPosition + checkedWindowSize) == checkedScrollSpan)
-            windowSizeInPixels = scrollBarHeightInPixels - focusPositionInPixels;
-        else
-            windowSizeInPixels = scrollBarHeightInPixels*checkedWindowSize/checkedScrollSpan;
-        }
-    */
-    
     TInt windowSizeInPixels = 
         Max( checkedWindowSize * scrollBarHeightInPixels / checkedScrollSpan,
-             HandleBackgroundMinSizeInPixels() );
+                iHandleMinSize );
     
     TInt roomForMovementInSpan   = checkedScrollSpan - checkedWindowSize;
     TInt roomForMovementInPixels = 
@@ -289,28 +264,25 @@
 
     // If window would cover whole scrollbar, then modify 
     // it to leave the thumb little short from bottom
-    TInt scrollBarHandleMaxSizeInPixels =  ScrollHandleMaxVisibleSizeInPixels();
+    TInt scrollBarHandleMaxSizeInPixels =  iHandleMaxSize;
+
     if (windowSizeInPixels >= scrollBarHeightInPixels)
         {
         windowSizeInPixels = scrollBarHandleMaxSizeInPixels;    
         }
 
     TBool doubleSpanInUse = (checkedFieldPosition >= 0) && (checkedFieldSize > 0);
-    TInt minHandleBackgroundSize = 0;
+    TInt minHandleBackgroundSize = iHandleMinSize;
     TInt fieldSizeInPixels = 0; // sub field size
     TInt fieldPositionInPixels = 0;
+    TInt handleMinSize = iHandleMinSize;
+
     if (doubleSpanInUse)
         {
         fieldSizeInPixels = windowSizeInPixels/checkedFieldSize;
         fieldPositionInPixels = windowSizeInPixels*checkedFieldPosition/checkedFieldSize;
-        minHandleBackgroundSize = HandleBackgroundMinSizeInPixels();
         }
-    else
-        {
-        minHandleBackgroundSize = HandleMinSizeInPixels();
-        }
-    
-    TInt handleMinSize = HandleMinSizeInPixels();
+
     // Similar compensation for handle if double span is in use
     if (doubleSpanInUse && (fieldSizeInPixels < handleMinSize))
         {
@@ -496,10 +468,11 @@
         {
         iOldRect = rect;        
         AknsUtils::RegisterControlPosition( this );
+        iHandleMinSize = HandleMinSizeInPixels();
+        iHandleMaxSize = HandleMaxSizeInPixels();
         CalculateRects();
+        UpdateScrollBarLayout();
 
-        UpdateScrollBarLayout();
-        
         if (IsVisible() & iOwnsWindow)
             DrawDeferred();
         }
@@ -520,14 +493,9 @@
     iWindowSize = aWindowSize;
     iFieldPosition = aFieldPosition;
     iFieldSize = aFieldSize;
-    
+
     // Calculate the sizes for graphics
     CalculateRects();            
-    if( iWindowSize > 0 )
-        {   
-        // layout handle graphics
-        LayoutHandleGraphics();
-        }
     }
 
 TInt CAknDoubleSpanScrollIndicator::ScrollSpan()
@@ -682,9 +650,10 @@
         return layRect.Rect().Width();
     }
 
-TInt CAknDoubleSpanScrollIndicator::ScrollHandleMaxVisibleSizeInPixels()
+
+TInt CAknDoubleSpanScrollIndicator::HandleMaxSizeInPixels()
     {
-    TRect scbRect = Rect();
+    TRect scbRect( Rect() );
     if ( iOrientation == CEikScrollBar::EHorizontal )
         scbRect.SetRect(scbRect.iTl, TSize(scbRect.Height(), scbRect.Width()));
     
@@ -694,10 +663,6 @@
     return layRect.Rect().Height();
     }
 
-TInt CAknDoubleSpanScrollIndicator::HandleBackgroundMinSizeInPixels()
-    {
-    return HandleMinSizeInPixels();
-    }
 
 TInt CAknDoubleSpanScrollIndicator::HandleMinSizeInPixels()
     {
@@ -734,8 +699,8 @@
 void CAknDoubleSpanScrollIndicator::DrawBackground() const
     {
     CWindowGc& gc=SystemGc();
-    TPoint pos = Position();
-    TRect rect = Rect();
+    TPoint pos( Position() );
+    TRect rect( Rect() );
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
     MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
     
@@ -761,56 +726,6 @@
         }
     }
 
-void CAknDoubleSpanScrollIndicator::LayoutHandleGraphics()
-    {
-    
-    // We layout the handle middle graphics here according to the given inidcator values
-    TRect rect = Rect();
-    
-    if (!iHandleBar || rect.IsEmpty())
-        return;
-    
-    TInt varietyIndex = 0;
-    TInt varietyIndexForHandle = 0;
-    if (iOrientation == CEikScrollBar::EHorizontal)
-        {        
-        varietyIndex = 1;
-        varietyIndexForHandle = 2;
-        }
-    
-    TAknLayoutRect layRect;
-    TAknWindowComponentLayout // layout handle bottom & top as they do not scale according to handle size
-    layout = AknLayoutScalable_Avkon::scroll_handle_pane(varietyIndexForHandle); // handle (the shadow if two handles)
-    layRect.LayoutRect(rect, layout.LayoutLine());
-    layout = AknLayoutScalable_Avkon::scroll_handle_focus_pane(varietyIndex); // focus handle
-    // The horizontal data for focus handle is missing so switch the values from the vertical data
-    TAknWindowLineLayout layoutLine = layout.LayoutLine();
-    if (iOrientation == CEikScrollBar::EHorizontal)
-        {
-        TInt height = layoutLine.iH;
-        TInt width = layoutLine.iW;
-        layoutLine.iW = height;
-        layoutLine.iH = width;
-        }
-    layRect.LayoutRect(layRect.Rect(), layoutLine);
-    rect = layRect.Rect(); // parent rect is now the focus handle
-    
-    // the retangle includes the variated length of the middle, 
-    // the top and bottom graphics must subtracted from the value
-    
-    // do not change the handle retangle, the full size is needed in drawing
-    // set the width or height to be correct
-    if (iOrientation == CEikScrollBar::EVertical)
-        {
-        iHandleRect.iTl.iX = rect.iTl.iX;
-        iHandleRect.iBr.iX = rect.iBr.iX;
-        }
-    else
-        {
-        iHandleRect.iTl.iY = rect.iTl.iY;
-        iHandleRect.iBr.iY = rect.iBr.iY;
-        }
-    }
 
 TInt CAknDoubleSpanScrollIndicator::GetCurrentThumbSpanInPixels()
     {
--- a/uifw/EikStd/coctlsrc/EIKCOCTL.MMP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKCOCTL.MMP	Tue May 11 16:27:42 2010 +0300
@@ -135,6 +135,7 @@
 SOURCE          aknitemactionmenudata.cpp
 SOURCE          aknitemactionmenuregisterarray.cpp
 SOURCE          aknedwinphysicshandler.cpp
+SOURCE          aknmarkingmode.cpp
 
 LIBRARY         euser.lib
 LIBRARY         efsrv.lib
--- a/uifw/EikStd/coctlsrc/EIKEDWIN.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKEDWIN.CPP	Tue May 11 16:27:42 2010 +0300
@@ -147,6 +147,8 @@
 
 const TInt KFullFormatLengthForSmiley = 5000;
 
+const TInt KContentThreshold = 8;
+
 //
 // class CEikEdwin::CUndoBuffer
 //
@@ -2872,16 +2874,20 @@
                     // on down event feedback is given if cursor/selection changes
                     if ( paintingPossible && !readOnly || editorWillGetFocus )
                         {
-                        iEdwinFepSupport->iFeedback->InstantFeedback( this, ETouchFeedbackBasic );
+                        iEdwinFepSupport->iFeedback->InstantFeedback( this, ETouchFeedbackEdit );
                         }
                     }
                 else  if ( selectionChanged && 
-                       ( ( aPointerEvent.iType == TPointerEvent::EDrag ) ||
+                         ( selectionAfter.iAnchorPos != selectionAfter.iCursorPos ) &&
+                         ( ( aPointerEvent.iType == TPointerEvent::EDrag ) ||
                          ( aPointerEvent.iType == TPointerEvent::EButtonRepeat ) ) )
                     {
-                    TInt readPos = ( selectionAfter.iCursorPos >= selectionBefore.iCursorPos ) ?
-                                          selectionBefore.iCursorPos : selectionAfter.iCursorPos ;
-                    TChar currentSelectedChar = Text()->Read( readPos, 1 )[0]; 
+                    TInt readPos = selectionAfter.iCursorPos;
+                    if ( selectionAfter.iCursorPos > selectionAfter.iAnchorPos )
+                        {
+                        readPos -= 1;//drag backword
+                        }
+                    TChar currentSelectedChar = Text()->Read( readPos, 1 )[0];
                     TBool isSpace = currentSelectedChar.IsSpace();
                     TBool isSmiley = CSmileyManager::IsSmileyCode(currentSelectedChar);
                     TBool isText = currentSelectedChar.IsGraph();
@@ -2889,10 +2895,10 @@
                     // case line
                     TInt prevLineNr = TextLayout()->GetLineNumber(selectionBefore.iCursorPos);
                     TInt lineNr = TextLayout()->GetLineNumber(selectionAfter.iCursorPos);
-                    if ( prevLineNr != lineNr && ( selection.Length() != 0 ) )
+                    if ( prevLineNr != lineNr )
                         {
-                        TInt group = ( currentSelectedChar.GetCategory() & 0xF0 );
-                        TBool isEmptyLine = ( group == TChar::ESeparatorGroup );
+                        TInt group = currentSelectedChar.GetCategory();
+                        TBool isEmptyLine = ( group == TChar::EZpCategory );
                         TTouchLogicalFeedback fType = ( isEmptyLine ? 
                             ETouchFeedbackEmptyLineSelection : ETouchFeedbackLineSelection );
                         iEdwinFepSupport->iFeedback->InstantFeedback( this, fType );
@@ -8926,6 +8932,7 @@
 		}
     }
 
+
 // ---------------------------------------------------------------------------
 // CEikEdwin::SkipBackgroundDrawer
 // ---------------------------------------------------------------------------
@@ -8936,6 +8943,24 @@
     }
 
 
+// ---------------------------------------------------------------------------
+// CEikEdwin::ContentFitsToViewRect
+// ---------------------------------------------------------------------------
+//
+TBool CEikEdwin::ContentFitsToViewRect() const
+    {
+    if ( iLayout && !iLayout->IsFormattingBand() )
+        {
+        if ( iLayout->FormattedHeightInPixels()
+            <= AdjustedViewRect().Height() + KContentThreshold )
+            {
+            return ETrue;
+            }
+        }
+
+    return EFalse;
+    }
+
 
 // End of File
 
--- a/uifw/EikStd/coctlsrc/EIKLBI.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLBI.CPP	Tue May 11 16:27:42 2010 +0300
@@ -38,7 +38,7 @@
 #include "laflbx.h"
 #include "akntrace.h"
 
-const TUint KListItemDrawerAllowedFlags = 0x0fff;
+const TUint KListItemDrawerAllowedFlags = 0x1fff;
 
 const TInt KDefaultMarkColumnWidth = 10;
 const TInt KDefaultMarkGutter = 2;
@@ -85,6 +85,13 @@
         aFlags &= ~EPressedDownState;
         }
     
+    // do not raise EDrawWholeBackground unless ENativeImplementation is set
+    if ( ( aFlags & EDrawWholeBackground ) 
+            && !( iFlags & ENativeImplementation ) )
+        {
+        aFlags &= ~EDrawWholeBackground;
+        }
+    
     iFlags |= aFlags; 
     iFlags &= KListItemDrawerAllowedFlags;
     }
--- a/uifw/EikStd/coctlsrc/EIKLBV.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLBV.CPP	Tue May 11 16:27:42 2010 +0300
@@ -956,33 +956,28 @@
 		return;
 	    }
 
-    TBool transparencyEnabled( CAknEnv::Static()->TransparencyEnabled() );
-
     if ((ITEM_EXISTS_ONCE(aItemIndex)) && ItemIsVisible(aItemIndex))
 		{
 		TBool drawingInitiated = ETrue;
 
-		if ( transparencyEnabled )
-		    {
-		    if ( iWin && iWin->GetDrawRect() == TRect::EUninitialized )
-			    {
+        if ( iWin && iWin->GetDrawRect() == TRect::EUninitialized )
+            {
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
-                MAknListBoxTfxInternal* transApi =
-                    CAknListLoader::TfxApiInternal( iGc );
-                drawingInitiated = transApi && !transApi->EffectsDisabled();
+            MAknListBoxTfxInternal* transApi =
+                CAknListLoader::TfxApiInternal( iGc );
+            drawingInitiated = transApi && !transApi->EffectsDisabled();
 #else
-                drawingInitiated = EFalse;
+            drawingInitiated = EFalse;
 #endif			
-                }
+            }
 
-            if ( !drawingInitiated )
-			    {
-                TRect rect( ItemPos(aItemIndex), iItemDrawer->ItemCellSize() );
-			    rect.Intersection( iViewRect );
-			    iWin->Invalidate( rect );
-			    iWin->BeginRedraw( rect );
-			    }
-		    }
+        if ( !drawingInitiated )
+            {
+            TRect rect( ItemPos(aItemIndex), iItemDrawer->ItemCellSize() );
+            rect.Intersection( iViewRect );
+            iWin->Invalidate( rect );
+            iWin->BeginRedraw( rect );
+            }
 		
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
         MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iGc );
@@ -994,8 +989,16 @@
             transApi->StartDrawing( MAknListBoxTfxInternal::EListItem );
             }
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
+
+        TBool backgroundDrawingSuppressed = ( iItemDrawer 
+		        && ( iItemDrawer->Flags() 
+                & ( CListItemDrawer::EDrawWholeBackground
+                | CListItemDrawer::EBackgroundDrawn ) ) );
         
-        iGc->SetClippingRect( iViewRect );
+        if ( !backgroundDrawingSuppressed )
+            {
+            iGc->SetClippingRect( iViewRect );
+            }
 
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
         if ( transApi )
@@ -1016,7 +1019,10 @@
             }
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
             
-		iGc->CancelClippingRect();
+        if ( !backgroundDrawingSuppressed )
+            {
+    		iGc->CancelClippingRect();
+            }
 
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
         if ( transApi )
@@ -1032,7 +1038,7 @@
             }
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
 
-		if ( transparencyEnabled && !drawingInitiated )
+        if ( !drawingInitiated )
 			{
 			iWin->EndRedraw();
 			}
@@ -1419,6 +1425,54 @@
     }
 
 
+// ---------------------------------------------------------------------------
+// Resets the selection state so that there is nothing selected.
+// ---------------------------------------------------------------------------
+//
+void CListBoxView::ClearSelection( TBool aDrawItems )
+    {
+    _AKNTRACE_FUNC_ENTER;
+
+    __ASSERT_DEBUG( iSelectionIndexes,
+                    Panic( EEikPanicListBoxNoSelIndexArray ) );
+
+    TInt numSelectedItems = iSelectionIndexes->Count();
+    TKeyArrayFix key( 0, ECmpTInt );
+    TInt selectedItemIndex;
+    TInt pos;
+
+#ifdef RD_UI_TRANSITION_EFFECTS_LIST
+    MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal( iGc );
+#endif // RD_UI_TRANSITION_EFFECTS_LIST
+    
+    for ( TInt i = 0; i < numSelectedItems; i++ )
+        {
+        selectedItemIndex = ( *( iSelectionIndexes ) )[0];
+
+        if ( !( iSelectionIndexes->Find( selectedItemIndex, key, pos ) ) )
+            {
+#ifdef RD_UI_TRANSITION_EFFECTS_LIST
+            if ( transApi )
+                {
+                transApi->Invalidate( MAknListBoxTfxInternal::EListItem,
+                                      selectedItemIndex );
+                }
+#endif // RD_UI_TRANSITION_EFFECTS_LIST
+
+            iSelectionIndexes->Delete( pos );
+
+            if ( aDrawItems )
+                {
+                DrawItem( selectedItemIndex );
+                }
+            }
+        }
+
+    ClearSelectionAnchorAndActiveIndex();
+
+    _AKNTRACE_FUNC_EXIT;
+    }
+
 
 // class CSnakingListBoxView
 
--- a/uifw/EikStd/coctlsrc/EIKLBX.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLBX.CPP	Tue May 11 16:27:42 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -74,6 +74,7 @@
 #include <aknitemactionmenu.h>
 #include <aknlongtapdetector.h>
 #include <AknPriv.hrh>
+#include <aknmarkingmodeobserver.h>
 #include "akntrace.h"
 
 // timeout for long keypress used in markable lists
@@ -85,7 +86,8 @@
 const TInt KDefaultStepSpeed = 5;
 const TInt KEikListBoxInvalidIndex=-1;
 //interval time for disable second point event
-const TInt KTwoPointerUpEventInterval = 120;    //  120 millisecond ( = 0.12 second ) 
+const TInt KTwoPointerUpEventInterval = 120;    //  120 millisecond ( = 0.12 second )
+const TInt KPointerDownAndUpThreshold = 5;
 // -----------------------------------------------------------------------------
 // If a parent to the supplied control has its Gc set, this function will find 
 // it and return it.
@@ -377,6 +379,7 @@
     public MCenRepNotifyHandlerCallback,
     public MAknPhysicsObserver,
     public MAknCollection,
+    public MAknMarkingCollection,
     public MAknLongTapDetectorCallBack
     {
 public:
@@ -448,6 +451,51 @@
      */    
     TInt CollectionExtension( TUint aExtensionId, TAny*& a0, TAny* a1 );
 
+// From MAknMarkingCollection
+    /**
+     * Sets multiple marking state.
+     *
+     * @param aActive ETrue if multiple marking should be active.
+     */
+    void SetMultipleMarkingState( TBool aActive );
+    
+    /**
+     * Returns whether the observer accepts ending of marking mode
+     * 
+     * @return ETrue if observer accepts exiting marking mode
+     */
+    TBool ExitMarkingMode();
+    
+    /**
+     * Returns the collection marking state. The state is combination of
+     * flags defined in @c TStateFlag. 
+     *
+     * @return  Collection state.
+     */
+    TUint MarkingState() const;
+
+    /**
+     * Marks the currently selected item.
+     */
+    void MarkCurrentItemL();
+     
+    /**
+     * Marks all items in the collection.
+     */
+    void MarkAllL(); 
+
+    /**
+     * Unmarks all items in the collection.
+     */
+    void UnmarkAll();
+    
+    /*
+     * Can current item be marked
+     * 
+     * @return ETrue if item can be marked
+     */
+    TBool CurrentItemMarkable();
+    
 // From MAknLongTapDetectorCallBack
     /**
      * Long tap detector callback 
@@ -512,6 +560,13 @@
      * @return ETrue if list has marked items.
      */
     TBool MarkedItems() const;
+    
+    /**
+     * Ignores pointer events until next up event. 
+     * 
+     * @return ETrue if the pointer event ignore was enabled.
+     */
+    TBool IgnorePointerEventsUntilUp();
 
 public:
     void InitPhysicsL();
@@ -618,7 +673,6 @@
     CAknPhysics *iPhysics;
     TPoint iDragStartPosition;
     TPoint iLastPointerPos;
-    TBool iBackgroundDrawingSuppressed;
     TBool iClickEventsAllowed;
     TBool iScrolling;
     TSize iViewSize;
@@ -682,12 +736,28 @@
     * Item that opened the item action menu
     */
     TInt iLongTappedItem;
+
+    /**
+     * Marking mode on / off.
+     */
+    TBool iMarkingModeInUse;
+    
+    /**
+     * Marking mode observer.
+     */
+    MAknMarkingModeObserver* iMarkingModeObserver;
+    
     /**
      * Pointer event to be forwarded to the long tap detector upon
      * highlight timer completion.
      */
     TPointerEvent iDelayedPointerDownEvent;
     
+    /**
+     * Ordinal position of listbox window, before stylus menu is opened.
+     */
+    TInt iOldWinPos;
+    
 private:
     CMatchBuffer* iBuffer;
     CEikListBox& iListBox;
@@ -751,7 +821,8 @@
       iLongTapDetector( NULL ),
       iSingleClickEnabled( iAvkonAppUi->IsSingleClickCompatible() ),
       iLongTappedItem( KErrNotFound ),
-      iListBox(aListBox)      
+      iOldWinPos( KErrNotFound ),
+      iListBox(aListBox)
     {
     }
 
@@ -945,6 +1016,7 @@
         EnableHighlight( EFalse );
         iListBox.iView->DrawItem( iLongTappedItem );
         iLongTappedItem = KErrNotFound;
+        iOldWinPos = KErrNotFound;
         }
     }
 
@@ -954,12 +1026,144 @@
 // -----------------------------------------------------------------------------
 //
 TInt CListBoxExt::CollectionExtension(
-        TUint /*aExtensionId*/, TAny*& /*a0*/, TAny* /*a1*/ )
-    {
+        TUint aExtensionId, TAny*& a0, TAny* /*a1*/ )
+    {
+    if ( aExtensionId == MAknMarkingCollection::TYPE )
+        {
+        a0 = static_cast<MAknMarkingCollection*>( this );
+        }
+
     return KErrNone;
     }
 
 
+// -----------------------------------------------------------------------------
+// CListBoxExt::SetMultipleMarkingState
+// -----------------------------------------------------------------------------
+//
+void CListBoxExt::SetMultipleMarkingState( TBool aActive )
+    {
+    _AKNTRACE_FUNC_ENTER;
+    iListBox.SetMarkingMode( aActive );
+    _AKNTRACE_FUNC_EXIT;
+    }
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::ExitMarkingMode
+// -----------------------------------------------------------------------------
+//
+TBool CListBoxExt::ExitMarkingMode()
+    {
+    if ( iListBox.MarkingModeObserver() )
+        {
+        return iListBox.MarkingModeObserver()->ExitMarkingMode();
+        }
+    return ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::MarkingState
+// -----------------------------------------------------------------------------
+//
+TUint CListBoxExt::MarkingState() const
+    {
+    _AKNTRACE_FUNC_ENTER;
+    TUint state( 0 );
+    if ( iListBox.MarkingMode() )
+        {
+        state |= MAknMarkingCollection::EStateMarkingMode;
+        if ( MarkedItems() )
+            {
+            state |= MAknMarkingCollection::EStateMarkedItems;
+            }
+        if ( iListBox.Model()->NumberOfItems() == 0 )
+            {
+            state |= MAknMarkingCollection::EStateCollectionEmpty;
+            }        
+        }
+    _AKNTRACE_FUNC_EXIT;
+    return state;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::MarkCurrentItemL
+// -----------------------------------------------------------------------------
+//
+void CListBoxExt::MarkCurrentItemL()
+    {
+    _AKNTRACE_FUNC_ENTER;
+
+    if ( iListBox.MarkingMode() )
+        {
+        TInt index = iListBox.CurrentItemIndex();
+        if ( index >= 0 && 
+                !iListBox.iItemDrawer->Properties( index ).IsSelectionHidden() )
+            {
+            iListBox.View()->SelectItemL( iListBox.CurrentItemIndex() );
+            }
+        }
+    _AKNTRACE_FUNC_EXIT;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::MarkAllL
+// -----------------------------------------------------------------------------
+//
+void CListBoxExt::MarkAllL()
+    {
+    _AKNTRACE_FUNC_ENTER;
+
+    if ( iListBox.MarkingMode() )
+        {       
+        for ( TInt i = 0; i < iListBox.Model()->NumberOfItems(); ++i )
+            {
+            if ( !iListBox.iItemDrawer->Properties( i ).IsSelectionHidden() )
+                {
+                iListBox.View()->SelectItemL( i );
+                }
+            }
+        }
+    _AKNTRACE_FUNC_EXIT;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::UnmarkAll
+// -----------------------------------------------------------------------------
+//
+void CListBoxExt::UnmarkAll()
+    {
+    _AKNTRACE_FUNC_ENTER;
+
+    if ( iListBox.MarkingMode() )
+        {
+        iListBox.View()->ClearSelection();
+        }
+
+    _AKNTRACE_FUNC_EXIT;
+    }
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::CurrentItemMarkable
+// -----------------------------------------------------------------------------
+//
+TBool CListBoxExt::CurrentItemMarkable()
+    {
+    _AKNTRACE_FUNC_ENTER;
+    TBool itemCanBeMarked = ETrue;
+     TInt index = iListBox.CurrentItemIndex();
+     if ( index >= 0 && 
+             iListBox.iItemDrawer->Properties( index ).IsSelectionHidden() )
+         {
+         itemCanBeMarked = EFalse;
+         }
+    _AKNTRACE_FUNC_EXIT;
+    return itemCanBeMarked;
+    }
+
+
 // ---------------------------------------------------------------------------
 // CListBoxExt::HandleLongTapEventL
 // ---------------------------------------------------------------------------
@@ -971,6 +1175,8 @@
     iLongTappedItem = iLastDownTappedItem;
     iLastDownTappedItem = KErrNotFound;
     iItemActionMenu->ShowMenuL( aPenEventScreenLocation, 0 );
+    IgnorePointerEventsUntilUp();
+    iOldWinPos = iListBox.DrawableWindow()->OrdinalPosition();
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -1035,12 +1241,18 @@
 	
     if ( iListBox.iView->ViewRect() != TRect() )
         {
-        TInt topItemIndex = iListBox.iView->TopItemIndex();
-        if ( iListBox.iView->ItemIsPartiallyVisible( topItemIndex) )
-            {
-            topItemIndex++; 
-            }    
-        TRAP_IGNORE( iListBox.UpdateHighlightL( topItemIndex ) );
+        // Set current item index highlighted if it is visible, otherwise
+        // the first visible index
+        TInt index = iListBox.iView->CurrentItemIndex(); 
+        if ( !iListBox.iView->ItemIsVisible( index ) )
+            {
+            index = iListBox.iView->TopItemIndex();
+            if ( iListBox.iView->ItemIsPartiallyVisible( index ) )
+                {
+                index++; 
+                }    
+            }
+        TRAP_IGNORE( iListBox.UpdateHighlightL( index ) );
         }
     
     DisableItemSpecificMenu();
@@ -1071,6 +1283,7 @@
     _AKNTRACE_FUNC_EXIT;
     }
 
+
 // -----------------------------------------------------------------------------
 // CListBoxExt::LongTapPointerEventL
 // -----------------------------------------------------------------------------
@@ -1079,12 +1292,13 @@
     {
     if ( iSingleClickEnabled && iLongTapDetector && iItemActionMenu  )
         {
-        // 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() ) )
+        // Send event on down only if item specific items were found. 
+        // Long tap is also disabled if current item is not marked while
+        // there are some marked items or marking mode is active.
+        if ( !( ( iListBox.MarkingMode() || MarkedItems() )
+            && !iListBox.View()->ItemIsSelected( iListBox.CurrentItemIndex() ) )
+            && ( aPointerEvent.iType != TPointerEvent::EButton1Down
+            || iItemActionMenu->InitMenuL() ) ) 
             {
             iLongTapDetector->PointerEventL ( aPointerEvent );
             }
@@ -1190,6 +1404,34 @@
 
 
 // -----------------------------------------------------------------------------
+// CListBoxExt::IgnorePointerEventsUntilUp
+// -----------------------------------------------------------------------------
+//
+TBool CListBoxExt::IgnorePointerEventsUntilUp()
+    {
+    _AKNTRACE_FUNC_ENTER;
+    
+    // Pointer event ignore must be done for the window-owning
+    // control or it doesn't have any effect!
+    CCoeControl* windowOwningControl = &iListBox;
+        
+    while ( windowOwningControl && !windowOwningControl->OwnsWindow() )
+        {
+        windowOwningControl = windowOwningControl->Parent();
+        }
+
+    if ( windowOwningControl )
+        {
+        windowOwningControl->IgnoreEventsUntilNextPointerUp();   
+        _AKNTRACE_FUNC_EXIT;
+        return ETrue;
+        }
+    _AKNTRACE_FUNC_EXIT;
+    return EFalse; 
+    }
+
+
+// -----------------------------------------------------------------------------
 // CListBoxExt::StartLongPressTimerL
 // -----------------------------------------------------------------------------
 //
@@ -1717,7 +1959,8 @@
     }
 
 // ---------------------------------------------------------------------------
-// CListBoxExt::FeedbackEnabledOnUpEvent
+// Checks whether or not tactile feedback should be given on a pointer
+// up event.
 // ---------------------------------------------------------------------------
 //
 TBool CListBoxExt::FeedbackEnabledOnUpEvent()
@@ -1725,11 +1968,20 @@
     _AKNTRACE_FUNC_ENTER;
     TBool enabled( EFalse );
     
+    // As there's no pressed down highlight in single click enabled lists,
+    // the iLastDownTappedItem is used to track whether or not the pointer
+    // up event happened inside the same list item as the pointer down event.
+    // Feedback should not be given if the pointer up is received outside of
+    // the item that received the pointer down event, or in cases when the
+    // list has been dragged or flicked between the pointer down and pointer
+    // up events.
     if ( ( iListBox.iItemDrawer->Flags() & CListItemDrawer::EPressedDownState
-        || iSingleClickEnabled ) && !iFlickStopped )
+        || ( iSingleClickEnabled && iLastDownTappedItem != KErrNotFound ) ) &&
+        !iFlickStopped )
         {
         enabled = ETrue;
         }
+
     _AKNTRACE_FUNC_EXIT;
     return enabled;
     }
@@ -2104,12 +2356,24 @@
             {
             if ( iListBoxExt && iListBoxExt->iSingleClickEnabled )
                 {
-                // If single click is enabled, highlight must also be visible
-                if ( iListBoxExt->CollectionState()
+                TInt offset = (iListBoxExt->iWorldSize.iHeight / 2)
+                        - iListBoxExt->iViewPosition.iY;
+                TInt totalItems = iModel->NumberOfItems();
+                TInt itemsInRect =
+                        iView->NumberOfItemsThatFitInRect( iView->ViewRect() );
+
+                if ( ( iListBoxExt->CollectionState()
                         & MAknCollection::EStateHighlightVisible )
+                      || ( ItemsInSingleLine()
+                              && ( totalItems <= itemsInRect )
+                              && ( offset != 0 ) ) )
                     {
                     newTopItemIndex = iView->CalcNewTopItemIndexSoItemIsVisible( currentItemIndex );
                     }
+                else
+                    {
+                    newTopItemIndex = iView->CalcNewTopItemIndexSoItemIsVisible( topItemIndex );
+                    }
                 }
             else
                 {
@@ -2129,10 +2393,10 @@
         if ( newTopItemIndex != KEikListBoxInvalidIndex )
         	{
         	iView->SetTopItemIndex( newTopItemIndex );
-        	if ( iListBoxExt && iListBoxExt->iPhysics )
-        		{
-        		iListBoxExt->InitPhysicsL();
-        		}
+            }
+        if ( iListBoxExt && iListBoxExt->iPhysics )
+            {
+            iListBoxExt->InitPhysicsL();
             }
         }
     UpdateScrollBarsL();
@@ -2404,7 +2668,8 @@
     UpdateCurrentItem(aItemIndex);
     iView->SetDisableRedraw(redrawDisabled);
     
-    if ( iListBoxExt && iListBoxExt->iPhysics && aItemIndex == 0 )
+    if ( iListBoxExt && iListBoxExt->iPhysics && aItemIndex == 0 
+             && !iListBoxExt->iScrolling )
         {    
         iView->SetItemOffsetInPixels( 0 );        
         }
@@ -3715,7 +3980,7 @@
                 if (!shiftKeyPressed && iListBoxFlags & EShiftEnterMarks)
                     { 
                     // enter key pressed on markable list without shift
-                    if (SelectionIndexes()->Count() > 0)
+                    if ( SelectionIndexes()->Count() > 0 && !MarkingMode() )
                         { 
                         // when there's marked items, should open options menu.
                         __KeyDebug(ETrue, "ok without shift => ok options menu");
@@ -3961,6 +4226,29 @@
             {
             allowed = iListBoxExt->iClickEventsAllowed;
             }
+
+        if ( MarkingMode() && allowed )
+            {
+            switch ( aEvent )
+                {
+                case MEikListBoxObserver::EEventItemSingleClicked:
+                case MEikListBoxObserver::EEventEnterKeyPressed:
+                    {                   
+                    TInt index = CurrentItemIndex();
+                    if ( index >= 0 && 
+                         !iItemDrawer->Properties(index).IsSelectionHidden() )
+                        {
+                        iView->ToggleItemL( iView->CurrentItemIndex() );
+                        }
+                    
+                    allowed = EFalse;
+                    }
+                    break;
+                    
+                default:
+                    break;
+                }
+            }
         
         if ( allowed )
             {
@@ -4692,11 +4980,6 @@
         return;
         }
 
-    
-    // When in marking mode, pointer events should not be forwarded to 
-    // long tap detector, this boolean indicates if marking mode is active
-    TBool markingMode( iListBoxExt->MarkedItems() );
-    
     if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
         {
         if ( iListBoxExt->iSingleClickEnabled && 
@@ -4708,9 +4991,8 @@
 
         iListBoxExt->iFeedbackType = ETouchFeedbackList;
         
-        if ( iListBoxFlags & ES60StyleMultiselection ||
-            ( !iListBoxExt->iSingleClickEnabled &&
-            itemIndex != iView->CurrentItemIndex() ) )
+        if ( !iListBoxExt->iSingleClickEnabled &&
+            itemIndex != iView->CurrentItemIndex() )
             {
             iListBoxExt->iFeedbackType = ETouchFeedbackSensitiveList;
             }
@@ -4855,11 +5137,15 @@
                             CCoeEnv::Static()->WsSession().Finish();
                             }
 
-                        iListBoxExt->ImmediateFeedback( 
-                            iListBoxExt->iFeedbackType,
-                            TTouchFeedbackType( ETouchFeedbackVibra | 
-                            ETouchFeedbackAudio ),
-                            aPointerEvent );
+                        if ( !( ( iListBoxFlags & EViewerFlag ) && 
+                                ( iListBoxFlags & EDisableItemSpecificMenu ) ) )
+                            {
+                            iListBoxExt->ImmediateFeedback( 
+                                iListBoxExt->iFeedbackType,
+                                TTouchFeedbackType( ETouchFeedbackVibra | 
+                                ETouchFeedbackAudio ),
+                                aPointerEvent );
+                            }
 
                         if ( !wasFlicking )
                             {
@@ -4891,7 +5177,8 @@
                             }
                         }
 #endif
-                if (!(iListBoxFlags & EMultipleSelection))      // i.e. this is a single selection listbox
+                if ( !( iListBoxFlags & EMultipleSelection ) 
+                        || MarkingMode() )
                     {
                     if (itemIndex == oldCurrentItemIndex)
                         {
@@ -5037,10 +5324,13 @@
             
         case TPointerEvent::EButton1Up:
             _AKNTRACE("TPointerEvent::EButton1Up");
-            if ( iListBoxExt->FeedbackEnabledOnUpEvent() && iListBoxExt->iClickEventsAllowed )
+            if ( iListBoxExt->FeedbackEnabledOnUpEvent() && iListBoxExt->iClickEventsAllowed 
+            	                    && ( !( ( iListBoxFlags & EViewerFlag ) && 
+                            ( iListBoxFlags & EDisableItemSpecificMenu ) ) ) )
                 {
                 TTouchLogicalFeedback fbType = ETouchFeedbackList;
-                if ( iListBoxFlags & ES60StyleMultiselection )
+                if ( iListBoxFlags & ES60StyleMultiselection 
+                      || iListBoxFlags & EMultipleSelection )
                     {
                     fbType = ETouchFeedbackCheckbox;
                     }
@@ -5111,9 +5401,16 @@
                         return;
                         }
                     }
-                else if ( s60StyleMultiselection && 
-                          iListBoxExt->iLastDownTappedItem == itemIndex &&
-                          !Buffer()->iDragToAnotherItem )
+                // Due to the feature of capactior panel, the pointer position
+                // may change between pointer down and up during user click 
+                // action. When the click position is between two items, the
+                // item index may change unwanted, so we make a threshold 
+                // for this situation.                
+                else if ( s60StyleMultiselection
+                         && ( iListBoxExt->iLastDownTappedItem == itemIndex
+                         || Abs( iListBoxExt->iLastPointerPos.iY 
+                         - aPointerEvent.iPosition.iY ) < KPointerDownAndUpThreshold )
+                         && !Buffer()->iDragToAnotherItem )
                     {
                     iListBoxFlags |= EStateChanged;
                     Buffer()->iPressedIndex = itemIndex;
@@ -5471,9 +5768,12 @@
 
 EXPORT_C TBool CEikListBox::BackgroundDrawingSuppressed() const
     {
-    if ( iListBoxExt )
-        {
-        return iListBoxExt->iBackgroundDrawingSuppressed;
+    if ( iItemDrawer )
+        {
+        TInt flags = iItemDrawer->Flags();
+        
+        return ( flags & CListItemDrawer::EDrawWholeBackground ) 
+                && ( flags & CListItemDrawer::EBackgroundDrawn );
         }
         
     return EFalse;
@@ -5793,8 +6093,22 @@
                                     EColorControlDimmedBackground : EColorControlBackground,*this);
         UpdateViewColors();
         UpdateItemDrawerColors();
-        
+
+        // store the value of virtical offset as it will be 0 in SizeChange,
+        // that will affect view position in skin changed, which is a bug.
+        TInt oldOffset = 0; 
+        if ( iView )
+            {
+            oldOffset = iView->ItemOffsetInPixels();
+            }
+        // TODO: check if this call is real need here. 
         SizeChanged();
+        if ( oldOffset !=0 && iView )
+            {
+            iView->SetItemOffsetInPixels( oldOffset );
+            UpdateScrollBarThumbs();
+            }
+        // this methord is empty.
         UpdateScrollBarsColors();
         
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -5839,7 +6153,13 @@
 
         case KAknMessageFocusLost:
             {
-            if ( iListBoxExt && iListBoxExt->iSingleClickEnabled )
+            TInt oldWinPos = iListBoxExt->iOldWinPos;
+            TInt winPos = DrawableWindow()->OrdinalPosition();
+            
+            // Do not remove higlight if window ordinal position has changed
+            // during the time when stylus menu is open
+            if ( iListBoxExt && iListBoxExt->iSingleClickEnabled
+                 && ( oldWinPos == KErrNotFound || oldWinPos == winPos ) )
                 {
                 TBool enabled( iItemDrawer && !( iItemDrawer->Flags()
                     & CListItemDrawer::ESingleClickDisabledHighlight ) );
@@ -6289,6 +6609,60 @@
     return enabled; 
     }
 
+
+// ---------------------------------------------------------------------------
+// CEikListBox::SetMarkingMode
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CEikListBox::SetMarkingMode( TBool aEnable )
+    {
+    if ( iListBoxExt && iListBoxExt->iSingleClickEnabled && 
+            ( iListBoxFlags & CEikListBox::ES60StyleMarkable ) )
+        {
+        if ( iListBoxExt->iMarkingModeInUse != aEnable ) 
+            {
+            if ( aEnable )
+                {
+                iView->ItemDrawer()->SetFlags( 
+                        CListItemDrawer::EMarkingModeEnabled );
+                }
+            else
+                {
+                iView->ItemDrawer()->ClearFlags( 
+                        CListItemDrawer::EMarkingModeEnabled );
+            
+                if ( iView->SelectionIndexes()->Count() > 0 )
+                    {
+                    iView->ClearSelection( EFalse );
+                    }
+                }
+
+            iListBoxExt->iMarkingModeInUse = aEnable;
+            DrawDeferred();
+            }
+
+        if ( MarkingModeObserver() )
+            {
+            MarkingModeObserver()->MarkingModeStatusChanged( aEnable );
+            }
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
+// CEikListBox::SetMarkingModeObserver
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CEikListBox::SetMarkingModeObserver( 
+        MAknMarkingModeObserver* aObserver )
+    {
+    if ( iListBoxExt )
+        {
+        iListBoxExt->iMarkingModeObserver = aObserver;
+        }
+    }
+
+
 void CEikListBox::ScrollView( const TInt aOffset, TBool aDrawNow )
 	{
 	_AKNTRACE_FUNC_ENTER;
@@ -6336,7 +6710,7 @@
                         }
                     else if ( CAknPhysics::EAknPhysicsActionDragging == iListBoxExt->iPhysics->OngoingPhysicsAction() )
                         {
-                        iListBoxExt->ImmediateFeedback( iListBoxExt->iFeedbackType,
+                        iListBoxExt->ImmediateFeedback( ETouchFeedbackSensitiveList,
                                                         TTouchFeedbackType( ETouchFeedbackVibra | ETouchFeedbackAudio ),
                                                         TPointerEvent() );
                         }
@@ -6365,17 +6739,20 @@
 #endif // _DEBUG
         iView->SetTopItemIndex( newTopItemIndex );
         }
+
     if ( aDrawNow )
         {
         TRect rect(Rect());
         
         // list position changed
-        if ( iListBoxExt )
-            {
-            iListBoxExt->iBackgroundDrawingSuppressed = ETrue;
-            }
+        if ( iListBoxExt && iListBoxExt->FlickOrPanningOngoing() )
+            {
+            iItemDrawer->SetFlags( CListItemDrawer::EDrawWholeBackground );
+            }
+
         UpdateScrollBarThumbs();
         DrawNow();
+
         if (iSBFrame && iSBFrame->VerticalScrollBar() && !iSBFrame->VerticalScrollBar()->OwnsWindow())
             {
             TRect srect( iSBFrame->VerticalScrollBar()->Rect() );
@@ -6384,9 +6761,11 @@
                 iSBFrame->DrawScrollBarsNow();                
                 }
             }
+
         if ( iListBoxExt )
             {
-            iListBoxExt->iBackgroundDrawingSuppressed = EFalse;
+            iItemDrawer->ClearFlags( CListItemDrawer::EDrawWholeBackground 
+                    | CListItemDrawer::EBackgroundDrawn );
             }
         }        
     _AKNTRACE_FUNC_EXIT;
@@ -6402,20 +6781,10 @@
     _AKNTRACE_FUNC_ENTER;
     _AKNTRACE( "aPointerEvent.iType = %d", aPointerEvent.iType );
     if ( iListBoxExt->iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionBouncing )
-        { 
-        // Block scrolling events outside listbox area. Note that pointer
-        // event ignore must be done for the window-owning control or it
-        // doesn't have any effect!
-        CCoeControl* windowOwningControl = this;
-        
-        while ( windowOwningControl && !windowOwningControl->OwnsWindow() )
-            {
-            windowOwningControl = windowOwningControl->Parent();
-            }
-
-        if ( windowOwningControl )
-            {
-            windowOwningControl->IgnoreEventsUntilNextPointerUp();
+        {  
+        // Block scrolling events outside listbox area.
+        if ( iListBoxExt->IgnorePointerEventsUntilUp() )
+            {
             _AKNTRACE_FUNC_EXIT;
             return ETrue;
             }
@@ -6456,6 +6825,11 @@
                         iListBoxExt->iMarkingDisabled = ETrue;
                         iListBoxFlags|=ELeftDownInViewRect;                        
                         blockEvent = ETrue;
+                        iListBoxExt->ImmediateFeedback( 
+                            ETouchFeedbackList,
+                            TTouchFeedbackType( ETouchFeedbackVibra | 
+                            ETouchFeedbackAudio ),
+                            aPointerEvent );
                         }
                     }
                 }
@@ -6732,6 +7106,40 @@
 
 
 // ---------------------------------------------------------------------------
+// CEikListBox::MarkingMode
+// ---------------------------------------------------------------------------
+//
+TBool CEikListBox::MarkingMode() const
+    {
+    TBool markingModeInUse = EFalse;
+    
+    if ( iListBoxExt )
+        {
+        markingModeInUse = iListBoxExt->iMarkingModeInUse;
+        }
+    
+    return markingModeInUse;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CEikListBox::MarkingModeObserver
+// ---------------------------------------------------------------------------
+//
+MAknMarkingModeObserver* CEikListBox::MarkingModeObserver()
+    {
+    MAknMarkingModeObserver* observer = NULL;
+    
+    if ( iListBoxExt )
+        {
+        observer = iListBoxExt->iMarkingModeObserver;
+        }
+    
+    return observer;
+    }
+
+
+// ---------------------------------------------------------------------------
 // Sets this control as visible or invisible.
 // ---------------------------------------------------------------------------
 //
--- a/uifw/EikStd/coctlsrc/EIKMENUB.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKMENUB.CPP	Tue May 11 16:27:42 2010 +0300
@@ -60,6 +60,7 @@
 #include "aknitemactionmenuregister.h"
 #include <AknPriv.hrh>
 #include "akntrace.h"
+#include "aknmarkingmode.h"
 
 enum { EEikMenuBarTitleArrayGranularity=10 };
 enum { EEikMenuBarPosArrayGranularity=2 };
@@ -74,9 +75,18 @@
     void FadeBehindPopup(TBool aFade);
 
     /**
-     * Sets item specific commands dimmed if highlight is not visible.
+     * Dims item specific commands if no highlight in list or dims
+     * other than item specific commands if list is in multiple marking
+     * state.
      */
-    void SetItemCommandsDimmedL();
+    void SetItemCommandsStateL();
+
+    /**
+     * Returns active marking mode object. Otherwise NULL.
+     * 
+     * @return Active marking mode object.
+     */
+    CAknMarkingMode* MarkingModeActive();
 
     /**
      * Saves current value of iItemActionMenu->CollectionHighlightVisible() to 
@@ -112,6 +122,11 @@
     CAknItemActionMenu* iItemActionMenu;
 
     /**
+     * ETrue if single click has been enabled in application.
+     */
+    TBool iSingleClickEnabled; 
+
+    /**
      * When menu pane is opened this value is updated to store the value about
      * collection highlight visibility
      */
@@ -146,22 +161,58 @@
     }
 
 
-void CEikMenuBarExtension::SetItemCommandsDimmedL()
+void CEikMenuBarExtension::SetItemCommandsStateL()
     {
-    if ( !iItemActionMenu )
+    if ( iSingleClickEnabled && !iItemActionMenu )
         {
         AknItemActionMenuRegister::RegisterMenuBarL( *iBar );
         }
-    // hide item-specific commands if highlight not visible 
-    if ( iBar->GetMenuType() != CEikMenuBar::EMenuContext 
-            && ( ( iItemActionMenu 
-            && !iItemActionMenu->CollectionHighlightVisible() ) 
-            || !iItemActionMenu ) ) 
-        {  
-        iBar->iMenuPane->SetItemCommandsDimmed();
+
+    // Hide item-specific commands if highlight not visible
+    // or show only item specific commands if list is in multiple marking
+    // state
+    if ( iBar->GetMenuType() != CEikMenuBar::EMenuContext )
+        {
+        if ( iItemActionMenu )
+            {
+            TBool dimCommands( EFalse );
+            TBool changeState( EFalse );
+            if ( iItemActionMenu->MarkingMode().MultipleMarkingActive() )
+                {
+                changeState = ETrue;
+                dimCommands = EFalse;
+                }
+            else if ( !iItemActionMenu->CollectionHighlightVisible() )
+                {
+                changeState = ETrue;
+                dimCommands = ETrue;
+                }
+            if ( changeState )
+                {
+                iBar->iMenuPane->SetItemCommandsStateL( dimCommands );
+                }
+            }
+        else if ( iSingleClickEnabled )
+            {
+            // Dim tagged item action and item specific commands 
+            // anyway, fixes case where listbox creation is not 
+            // finished yet when options menu is opened
+            iBar->iMenuPane->SetItemCommandsStateL( ETrue );
+            }
         }
     }
 
+CAknMarkingMode* CEikMenuBarExtension::MarkingModeActive()
+    {
+    CAknMarkingMode* markingMode( NULL );
+    if ( iItemActionMenu
+            && iItemActionMenu->MarkingMode().MultipleMarkingActive() )
+        {
+        markingMode = &iItemActionMenu->MarkingMode();
+        }
+    return markingMode;
+    }
+
 
 void CEikMenuBarExtension::StoreCollectionHighlightValue()
     {
@@ -171,10 +222,14 @@
                 = iItemActionMenu->CollectionHighlightVisible();
         }
     }
+
 CEikMenuBarExtension::CEikMenuBarExtension(CEikMenuBar* aBar)
     :iBar(aBar),
      iDoingMenuCloseTransition(EFalse),
-     iItemActionMenu( NULL )
+     iItemActionMenu( NULL ),
+     iSingleClickEnabled(
+             static_cast<CAknAppUi*>(
+                     aBar->ControlEnv()->AppUi() )->IsSingleClickCompatible() )
     {
     }
 
@@ -885,6 +940,12 @@
 
     TInt titles = iTitleArray->Count() - 1;
     
+    CAknMarkingMode* marking( NULL );
+    if ( iExt )
+        {
+        marking = iExt->MarkingModeActive();
+        }
+    
     if ( titles < 0 )
         {
         delete iMenuCba;
@@ -893,31 +954,77 @@
         iMenuPane->Close();
         return;
         }
-        
-    // Create the menu pane using the last pane in the menu bar
-    iMenuObserver->RestoreMenuL(iMenuPane,(*iTitleArray)[titles]->iData.iMenuPaneResourceId,MEikMenuObserver::EMenuPane);
-    if (fepMenuObserver)
-        fepMenuObserver->DynInitMenuPaneL((*iTitleArray)[titles]->iData.iMenuPaneResourceId,iMenuPane);
-    if (iActiveEditMenuObserver)
-        iActiveEditMenuObserver->DynInitMenuPaneL((*iTitleArray)[titles]->iData.iMenuPaneResourceId,iMenuPane);
 
-    titles = iTitleArray->Count() - 2;
-    iMenuPane->FilterDimmedItems();
+    TBool markedItems( EFalse ); 
+    if ( marking )
+        {
+        markedItems = marking->MarkedItems(); 
+        }
+    // In marking mode do not add commands if no marked items in list
+    if ( !marking || markedItems )
+        {
+        // Create the menu pane using the last pane in the menu bar
+        iMenuObserver->RestoreMenuL(
+                iMenuPane,
+                ( *iTitleArray )[ titles ]->iData.iMenuPaneResourceId,
+                MEikMenuObserver::EMenuPane );
+        if ( fepMenuObserver )
+            fepMenuObserver->DynInitMenuPaneL(
+                    ( *iTitleArray )[ titles ]->iData.iMenuPaneResourceId,
+                    iMenuPane );
+        if ( iActiveEditMenuObserver )
+            iActiveEditMenuObserver->DynInitMenuPaneL(
+                    ( *iTitleArray )[ titles ]->iData.iMenuPaneResourceId,
+                    iMenuPane );
+
+        titles = iTitleArray->Count() - 2;
+        iMenuPane->FilterDimmedItems();
 
-    // Add the remaining menu panes from right to left at the end of the current pane
-    while (titles >= 0)
+        // Add the remaining menu panes from right to left
+        // at the end of the current pane
+        while ( titles >= 0 )
+            {
+            TInt resource =
+                ( *iTitleArray )[ titles ]->iData.iMenuPaneResourceId;
+            iMenuPane->AddMenuItemsL( resource, 0, ETrue );
+            iMenuObserver->DynInitMenuPaneL( resource, iMenuPane );
+            if ( fepMenuObserver )
+                fepMenuObserver->DynInitMenuPaneL( resource, iMenuPane );
+            if ( iActiveEditMenuObserver )
+                iActiveEditMenuObserver->DynInitMenuPaneL(
+                        resource,iMenuPane );
+
+            if ( resource == R_AVKON_MENUPANE_MARK_MULTIPLE )
+                {
+                iMenuPane->SetItemDimmed( EAknCmdMarkingModeMarkOne, ETrue );
+                }
+
+            titles--;
+            }
+        iExt->SetItemCommandsStateL();
+        iMenuPane->FilterDimmedItems();
+        }
+
+    // Multiple marking mode active
+    if ( marking )
         {
-        TInt resource = (*iTitleArray)[titles]->iData.iMenuPaneResourceId;
-        iMenuPane->AddMenuItemsL(resource, 0, ETrue);       
-        iMenuObserver->DynInitMenuPaneL(resource,iMenuPane);
-        if (fepMenuObserver)
-            fepMenuObserver->DynInitMenuPaneL(resource,iMenuPane);
-        if (iActiveEditMenuObserver)
-            iActiveEditMenuObserver->DynInitMenuPaneL(resource,iMenuPane);
-        iExt->SetItemCommandsDimmedL();
+        iMenuPane->AddMenuItemsL( R_AVKON_MENUPANE_MARK_MULTIPLE, 0, ETrue );
+
+        if ( !marking->CollectionEmpty() )
+            {
+            iMenuPane->SetItemDimmed( EAknCmdMarkingModeMarkAll, EFalse );
+            }
+
+        if ( markedItems )
+            {
+            iMenuPane->SetItemDimmed( EAknCmdMarkingModeUnmarkAll, EFalse );
+            }
+
+        iMenuPane->SetItemDimmed( EAknCmdMarkingModeMarkOne, ETrue );
+        iMenuPane->SetItemDimmed( EAknCmdMarkingModeEnter, ETrue );
         iMenuPane->FilterDimmedItems();
-        titles--;
         }
+
     iMenuObserver->SetEmphasis(this,ETrue);
 	iMenuCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, 
 	    CEikButtonGroupContainer::EHorizontal,
@@ -930,8 +1037,11 @@
         {
         iMenuPane->SetEmbeddedCba( cba );
         }
-    
-    MTouchFeedback* feedback = MTouchFeedback::Instance();
+    MTouchFeedback* feedback = NULL;
+    if( AknLayoutUtils::PenEnabled() )
+        {
+        feedback = MTouchFeedback::Instance();
+        }
     if ( feedback )
         {
         feedback->FlushRegistryUpdates();
@@ -942,7 +1052,11 @@
                 KPSUidAvkonInternal, 
                 KAknMenuOptionNoTaskSwapper, 
                 taskSwapper);      
-    if ( iMenuPane->NumberOfItemsInPane() != 0 && iExt->iMenuType == EMenuOptions && taskSwapper == ETaskSwapper )      
+
+   if ( iMenuPane->NumberOfItemsInPane() != 0 
+           && iExt->iMenuType == EMenuOptions 
+           && taskSwapper == ETaskSwapper
+           && !marking )
         {
         // 'Active Applications' menu item is added at the first item of the 
         // options menu after other menu items are added.
@@ -999,20 +1113,6 @@
         // menu pane captures all pointer events, and forwards them to CBA if neccessary
         iMenuPane->SetGloballyCapturing(ETrue);
         iMenuPane->SetPointerCapture(ETrue);
-        MTouchFeedback* feedback = MTouchFeedback::Instance();
-        if ( feedback )
-            {
-            TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
-            if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
-                {
-                fbLogicalType = ETouchFeedbackOptionsMenuOpened;
-                }
-            feedback->InstantFeedback(
-                                   this,
-                                   fbLogicalType,
-                                   ETouchFeedbackVibra,
-                                   TPointerEvent() );
-            }      
         }
     
     iMenuPane->MakeVisible( EFalse );
@@ -1023,6 +1123,16 @@
     if( optMenuFg )
         {
         GfxTransEffect::Begin( iMenuPane, KGfxControlAppearAction );
+        if( feedback && CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ))
+            {
+            TTouchLogicalFeedback fbLogicalType = ETouchFeedbackOptionsMenuOpened;
+            if( iExt->iMenuType == EMenuContext || iExt->iMenuType == EMenuEdit )
+                {
+                fbLogicalType = ETouchFeedbackIncreasingPopUp;
+                }
+            feedback->InstantFeedback( this, fbLogicalType,
+                                        ETouchFeedbackVibra, TPointerEvent() );
+            }      
         } 
     
     iMenuPane->StartDisplayingMenuPane(NULL, menuPosition, NULL, screenSize.iWidth, EPopupTargetBottomLeft);
@@ -1040,6 +1150,11 @@
         GfxTransEffect::SetDemarcation( iMenuPane, demarcation );
         GfxTransEffect::End( iMenuPane );
         }
+    if( feedback )
+        {
+        feedback->InstantFeedback( this, ETouchFeedbackPopUp,
+                                    ETouchFeedbackVibra, TPointerEvent() );
+        }
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -1193,9 +1308,18 @@
                 if ( feedback )
                     {
                     TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
-                    if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+                    if ( CAknTransitionUtils::TransitionsEnabled(
+                            AknTransEffect::EComponentTransitionsOff ) )
                         {
-                        fbLogicalType = ETouchFeedbackOptionsMenuClosed;
+                        if ( iExt->iMenuType == EMenuContext ||
+                             iExt->iMenuType == EMenuEdit )
+                            {
+                            fbLogicalType = ETouchFeedbackDecreasingPopUp;
+                            }
+                        else
+                            {
+                            fbLogicalType = ETouchFeedbackOptionsMenuClosed;
+                            }
                         }
                     feedback->InstantFeedback(
                                            this,
@@ -1206,7 +1330,49 @@
                 }
             break;
 // AKNLAF end
+
+        case EAknCmdMarkingModeEnter:
+            {
+            if ( iExt->iItemActionMenu )
+                {
+                iExt->iItemActionMenu->MarkingMode(
+                        ).SetCollectionMultipleMarkingState( ETrue );
+                }
+            break;
+
+        case EAknCmdMarkingModeMarkOne:
+            {
+            if ( iExt->iItemActionMenu )
+                {
+                iExt->iItemActionMenu->MarkingMode().MarkCurrentItemL();
+                }
+            }
+            break;
+
+        case EAknCmdMarkingModeMarkAll:
+            {
+            if ( iExt->iItemActionMenu )
+                {
+                iExt->iItemActionMenu->MarkingMode().MarkAllL();
+                }
+            }
+            break;
+
+        case EAknCmdMarkingModeUnmarkAll:
+            {
+            if ( iExt->iItemActionMenu )
+                {
+                iExt->iItemActionMenu->MarkingMode().UnmarkAll();
+                }
+            }
+            break;
+            }
+
         default:
+            if ( iExt->iItemActionMenu )
+                {
+                iExt->iItemActionMenu->MarkingMode().TryExitMarkingMode();
+                }
             break;
         }
     }
@@ -1438,6 +1604,15 @@
                     {
                     menuPane->AddMenuItemsL( resource, 0 );
                     iMenuObserver->DynInitMenuPaneL( resource, menuPane );                    
+
+                    if ( resource == R_AVKON_MENUPANE_MARK_MULTIPLE ) 
+                        {
+                        if ( iExt->iItemActionMenu->MarkingMode().MultipleMarkingActive() || 
+                             !iExt->iItemActionMenu->MarkingMode().CurrentItemMarkable() )
+                            {
+                            menuPane->SetItemDimmed( EAknCmdMarkingModeMarkOne, ETrue );
+                            }
+                        }
                     }
                 titles--;
                 }
--- a/uifw/EikStd/coctlsrc/EIKMENUP.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKMENUP.CPP	Tue May 11 16:27:42 2010 +0300
@@ -143,7 +143,7 @@
     /**
      * Prepares cascade menu for item specific commands.
      */
-    void PrepareCascadeForItemCommands();
+    void PrepareCascadeForItemCommandsL();
 
     /**
      * Returns ETrue if this menu pane belongs to a CS menu.
@@ -237,7 +237,8 @@
         EHideItemSpecificCommands,
         EContextSensitive,
         ESkipScrollbarUpdate,
-        EHighlightEnabled
+        EHighlightEnabled,
+        EHideViewSpecificCommands
         };
 
     /**
@@ -839,6 +840,11 @@
         {
         cascadeMenuPane->SetParent( iControl );
         GfxTransEffect::Begin( cascadeMenuPane, KGfxControlAppearAction );
+        if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+            {
+            ImmediateFeedback( ETouchFeedbackSubMenuOpened,
+                                            ETouchFeedbackVibra );
+            }
         cascadeMenuPane->StartDisplayingMenuPane( iControl->iHotKeyTable,
                                                   iControl->Position(),
                                                   NULL,
@@ -1248,6 +1254,7 @@
     iFlags.Clear( EHideItemSpecificCommands );
     iFlags.Clear( EContextSensitive );
     iFlags.Clear( EHighlightEnabled );
+    iFlags.Clear( EHideViewSpecificCommands );
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -1329,8 +1336,8 @@
     TTouchLogicalFeedback aType,
     TTouchFeedbackType aFbType  = TTouchFeedbackType( ETouchFeedbackAudio |
                                                       ETouchFeedbackVibra ))
-    {   
-    if ( iFeedback )
+    {
+    if( iFeedback && AknLayoutUtils::PenEnabled() )
         {
         iFeedback->InstantFeedback( iControl, aType, aFbType, TPointerEvent() );
         }
@@ -1338,10 +1345,10 @@
 
 
 // -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::PrepareCascadeForItemCommands
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::PrepareCascadeForItemCommands()
+// CEikMenuPaneExtension::PrepareCascadeForItemCommandsL
+// -----------------------------------------------------------------------------
+//
+void CEikMenuPaneExtension::PrepareCascadeForItemCommandsL()
     {
     if ( iFlags.IsSet( ESingleClickEnabled )
             && iControl->iOwner
@@ -1354,7 +1361,7 @@
             }
         else if ( ownerFlags.IsSet( EHideItemSpecificCommands ) )
             {
-            iControl->SetItemCommandsDimmed();
+            iControl->SetItemCommandsStateL( ETrue );
             }
         }
     }
@@ -1795,6 +1802,13 @@
     {
     _AKNTRACE_FUNC_ENTER;
     AKNTASHOOK_REMOVE();
+
+    if ( iIsDeleted )
+        {
+        *iIsDeleted = ETrue;
+        iIsDeleted = NULL;
+        }
+    
     CloseCascadeMenu();
     if ( !ItemArrayOwnedExternally() )
         {
@@ -2246,7 +2260,7 @@
         iEditMenuObserver->DynInitMenuPaneL( aCascadeMenuId, iCascadeMenuPane );
         }
 
-    iCascadeMenuPane->iExtension->PrepareCascadeForItemCommands();
+    iCascadeMenuPane->iExtension->PrepareCascadeForItemCommandsL();
     iCascadeMenuPane->iExtension->EnableHighlight( EFalse );
     iCascadeMenuPane->FilterDimmedItems();
 
@@ -2259,13 +2273,7 @@
         {
         iExtension->StartCascadeMenuAppearTransition();
         }
-
-    TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
-    if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
-        {
-        fbLogicalType = ETouchFeedbackSubMenuOpened;
-        }
-    iExtension->ImmediateFeedback( fbLogicalType,
+    iExtension->ImmediateFeedback( ETouchFeedbackPopUp,
                                        ETouchFeedbackVibra );
     _AKNTRACE_FUNC_EXIT;
     }
@@ -3099,10 +3107,35 @@
         CEikMenuPane* menu = iOwner ? iOwner : this;
         MCoeControlObserver* observer = menu->Observer();
 
-        if ( commandId != EAknCmdTaskSwapper )
+        if ( commandId >= EAknCmdMarkingModeEnter 
+                && commandId <= EAknCmdMarkingModeUnmarkAll )
+            {
+            CEikMenuBar* menuBar = static_cast<CEikMenuBar*>( Parent() );
+            if ( menuBar && menuBar->MenuPane() == this )
+                {
+                static_cast<MEikCommandObserver*>(
+                        menuBar)->ProcessCommandL( commandId );
+                }
+            ReportCanceled();
+            }
+        else if ( commandId != EAknCmdTaskSwapper )
             {
             _AKNTRACE( "commandId = %d",  commandId );
+            TBool isDeleted = EFalse;
+            iIsDeleted = &isDeleted;
             iMenuObserver->ProcessCommandL( commandId ); 
+
+            if ( !isDeleted )
+                {
+                CEikMenuBar* menuBar = static_cast<CEikMenuBar*>( Parent() );
+                if ( menuBar && menuBar->MenuPane() == this )
+                    {
+                    static_cast<MEikCommandObserver*>(
+                            menuBar)->ProcessCommandL( commandId );
+                    }
+                }            
+
+            iIsDeleted = NULL;
             }
         else
             {
@@ -4014,10 +4047,10 @@
                 _AKNTRACE_FUNC_EXIT;
                 return iOwner->HandlePointerEventL( parentEvent );
                 }
-            iExtension->iDownOnMenuArea = EFalse;
 
             iExtension->iPanningActive = EFalse;
-            if ( !(iExtension->iSct &&  iExtension->iSct->Rect().Contains( iExtension->iStartPoint ) ) )
+            if ( !(iExtension->iSct &&  iExtension->iSct->Rect().Contains( iExtension->iStartPoint ) ) 
+                && iExtension->iDownOnMenuArea )
                 {
                 TPoint drag = iExtension->iStartPoint - aPointerEvent.iPosition;
                 if ( iExtension->iPhysics->StartPhysics( 
@@ -4027,6 +4060,7 @@
                     iExtension->ResetPressedHighlight();
                     }
                 }
+             iExtension->iDownOnMenuArea = EFalse;
             if ( iExtension->HighlightTimerActive() &&
                  !iExtension->iPressedDown )
                 {
@@ -4375,11 +4409,11 @@
             if( Abs( threshold ) > iExtension->iPhysics->DragThreshold() 
                 && iExtension->iDownOnMenuArea )
                 {
+                iExtension->EnableHighlight( EFalse );
                 iExtension->iButtonDownItem = KErrNotFound;
                 iExtension->ResetPressedHighlight();
                 iExtension->iNextHighlightItem = KErrNotFound;
                 iExtension->iPanningActive = ETrue;
-                iExtension->EnableHighlight( EFalse );
                 }    
                          
             if ( iExtension->iPanningActive && iExtension->iDownOnMenuArea )
@@ -6514,25 +6548,51 @@
 
 
 // -----------------------------------------------------------------------------
-// CEikMenuPane::SetItemCommandsDimmed
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPane::SetItemCommandsDimmed()
+// CEikMenuPane::SetItemCommandsStateL
+// -----------------------------------------------------------------------------
+//
+void CEikMenuPane::SetItemCommandsStateL( TBool aDimmed )
     {
     if ( iExtension && iExtension->iFlags.IsSet(
             CEikMenuPaneExtension::ESingleClickEnabled ) )
         {
-        iExtension->iFlags.Set(
-                CEikMenuPaneExtension::EHideItemSpecificCommands );
+        if ( aDimmed )
+            {
+            iExtension->iFlags.Set(
+                    CEikMenuPaneExtension::EHideItemSpecificCommands );
+            }
+        else
+            {
+            iExtension->iFlags.Set(
+                    CEikMenuPaneExtension::EHideViewSpecificCommands );
+            }
         for ( TInt i = 0; i < iItemArray->Count(); ++i )
             {
             CEikMenuPaneItem* item = iItemArray->At( i );
-            if ( item->iData.iFlags & EEikMenuItemAction
+            TBool itemSpecificItem(
+                    item->iData.iFlags & EEikMenuItemAction
                     || item->iData.iFlags & EEikMenuItemSpecific
-                    || item->iData.iFlags & EEikMenuItemSpecificListQuery )
+                    || item->iData.iFlags & EEikMenuItemSpecificListQuery );
+            // Dim item specific items
+            if ( aDimmed && itemSpecificItem )
                 {
                 item->iData.iFlags |= EEikMenuItemDimmed;
                 }
+            // Dim items not item specific
+            else if ( !aDimmed
+                        && ( !itemSpecificItem
+                        || item->iData.iFlags & EEikMenuItemAction ) )
+                {
+                item->iData.iFlags |= EEikMenuItemDimmed;
+                if ( item->iData.iCascadeId ) 
+                    {
+                    // i is not updated in AddCascadeMenuItemsToMenuL so going 
+                    // through added items again here. Then it goes through
+                    // also submenus of submenus. 
+                    AddCascadeMenuItemsToMenuL(
+                            item->iData.iCascadeId, ETrue, EFalse, NULL, i );
+                    }
+                }
             }
         }
     }
@@ -6560,8 +6620,8 @@
             if ( !( item->iData.iFlags & EEikMenuItemSpecificListQuery )
                     && item->iData.iCascadeId )
                 {
-                AddCascadeMenuItemsToActionMenuL(
-                        item->iData.iCascadeId, EFalse, aMenuData );
+                AddCascadeMenuItemsToMenuL(
+                        item->iData.iCascadeId, EFalse, ETrue, &aMenuData );
                 }
             // If menu item is list query or it does not have cascade menu
             else
@@ -6577,21 +6637,23 @@
         else if ( item->iData.iCascadeId && 
                 !( item->iData.iFlags & EEikMenuItemDimmed ) )
             {
-            AddCascadeMenuItemsToActionMenuL(
-                    item->iData.iCascadeId, ETrue, aMenuData );
+            AddCascadeMenuItemsToMenuL(
+                    item->iData.iCascadeId, ETrue, ETrue, &aMenuData );
             }
         }
     }
 
 
 // -----------------------------------------------------------------------------
-// CEikMenuPane::AddCascadeMenuItemsToActionMenuL
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPane::AddCascadeMenuItemsToActionMenuL(
+// CEikMenuPane::AddCascadeMenuItemsToMenuL
+// -----------------------------------------------------------------------------
+//
+void CEikMenuPane::AddCascadeMenuItemsToMenuL(
         TInt aCascadeId,
         TBool aItemSpecific,
-        CAknItemActionMenuData& aMenuData )
+        TBool aAddToItemActionMenu,
+        CAknItemActionMenuData* aMenuData,
+        TInt aItemIndex )
     {
     if ( aCascadeId && iCoeEnv->IsResourceAvailableL( aCascadeId ) )
         {
@@ -6610,10 +6672,17 @@
                 || ( !aItemSpecific
                         && !( item->iData.iFlags & EEikMenuItemDimmed ) ) )
                 {
-                aMenuData.AddMenuItemToDataArrayL(
-                        item->iData.iCommandId,
-                        item->iData.iCascadeId,
-                        item->iData.iText );
+                if ( aAddToItemActionMenu )
+                    {
+                    aMenuData->AddMenuItemToDataArrayL(
+                            item->iData.iCommandId,
+                            item->iData.iCascadeId,
+                            item->iData.iText );
+                    }
+                else 
+                    {
+                    InsertMenuItemL( item->iData, ++aItemIndex );
+                    }
                 }
             }
         CleanupStack::PopAndDestroy( cascadeMenu );
--- a/uifw/EikStd/coctlsrc/EIKSCRLB.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKSCRLB.CPP	Tue May 11 16:27:42 2010 +0300
@@ -2382,25 +2382,35 @@
                 scrollBarRect.Move( Position().iX - 
                     windowOwningParent->Position().iX, 0 );
                 } 
-            
-            // left to right layout in use
-            if ( !AknLayoutUtils::LayoutMirrored() )
-                {
-                xGap = parentRect.iBr.iX - scrollBarRect.iBr.iX;  
-                if ( Abs( xGap ) < scrollBarRect.Width() )
-                    {
-                    extension.iBr.iX += xGap;
-                    }
-                }
-            // right to left layout in use
+            if ( iOrientation == CEikScrollBar::EVertical )
+            	{
+				// left to right layout in use
+				if ( !AknLayoutUtils::LayoutMirrored() )
+					{
+					xGap = parentRect.iBr.iX - scrollBarRect.iBr.iX;  
+					if ( Abs( xGap ) < scrollBarRect.Width() )
+						{
+						extension.iBr.iX += xGap;
+						}				
+					}
+				// right to left layout in use
+				else
+					{				
+					xGap = parentRect.iTl.iX - scrollBarRect.iTl.iX;
+					if ( Abs( xGap ) < scrollBarRect.Width() )
+						{
+						extension.iTl.iX += xGap;
+						}
+					} 
+            	}
             else
-                {
-                xGap = parentRect.iTl.iX - scrollBarRect.iTl.iX;
-                if ( Abs( xGap ) < scrollBarRect.Width() )
-                    {
-                    extension.iTl.iX += xGap;
-                    }
-                }  
+            	{
+				xGap = parentRect.iBr.iY - scrollBarRect.iBr.iY;  
+				if ( Abs( xGap ) < scrollBarRect.Height() )
+					{
+					extension.iBr.iY += xGap;
+					}
+            	}             
             }
         }     
     
@@ -2416,7 +2426,7 @@
         area.iTl.iX = scrollbar.iTl.iY - extension.iTl.iY;
         area.iTl.iY = scrollbar.Width() - extension.Width();
         area.iBr.iX = iSize.iWidth + ( extension.Height() - scrollbar.Height() );
-        area.iBr.iY = area.iTl.iY + extension.Width();
+        area.iBr.iY = area.iTl.iY + extension.Height();
         }
     
     return area;
--- a/uifw/EikStd/coctlsrc/akndoublespanscrollindicatoritem.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/akndoublespanscrollindicatoritem.cpp	Tue May 11 16:27:42 2010 +0300
@@ -78,31 +78,8 @@
         TInt        /*aBottomItemBitmapId*/,
         TInt        /*aBottomItemMaskId*/)
     {
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
     iTopId = aTopItem;
     iMidId = aMiddleItem;
     iBottomId = aBottomItem;
     }
 
-void CAknDoubleSpanScrollIndicatorItem::CreateSkinnedBitmapAndMaskL(MAknsSkinInstance* aInstance,
-    const TAknsItemID& aID,
-    CFbsBitmap*& aBitmap,
-    CFbsBitmap*& aMask,
-    TBool /*aRotated*/)
-    {
-    CFbsBitmap* skinnedBitmap = NULL;
-    CFbsBitmap* skinnedMask = NULL;
-
-    // note, real fallback icons are not (yet) available in avkon icon file.
-    TRAP_IGNORE(AknsUtils::CreateIconL( aInstance, aID, skinnedBitmap, skinnedMask, KNullDesC, -1, -1 ));
-
-    if(!skinnedBitmap)
-        {
-        AknsUtils::CreateIconL( aInstance, aID, skinnedBitmap, KNullDesC, -1 );
-        }
-
-    aBitmap = skinnedBitmap;
-    aMask = skinnedMask;
-
-    }
-
--- a/uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp	Tue May 11 16:27:42 2010 +0300
@@ -142,10 +142,12 @@
                 }
             else
                 {
-                TInt deltaY( iPrevPosition.iY - aPointerEvent.iPosition.iY );
-    
-                TPoint deltaPoint( 0, deltaY );
-                iPhysics->RegisterPanningPosition( deltaPoint );
+                if ( !iEdwin.ContentFitsToViewRect() )
+                    {
+                    TInt deltaY( iPrevPosition.iY - aPointerEvent.iPosition.iY );
+                    TPoint deltaPoint( 0, deltaY );
+                    iPhysics->RegisterPanningPosition( deltaPoint );
+                    }
                 }
             iPrevPosition = aPointerEvent.iPosition;
             }
@@ -157,8 +159,12 @@
                 }
             
             iFlags.Clear( EFlagDraggingAllowed );
-            TPoint drag( 0, iStartPosition.iY - aPointerEvent.iPosition.iY );
-            iPhysics->StartPhysics( drag, iStartTime );
+
+            if ( !iEdwin.ContentFitsToViewRect() )
+                {
+                TPoint drag( 0, iStartPosition.iY - aPointerEvent.iPosition.iY );
+                iPhysics->StartPhysics( drag, iStartTime );
+                }
             }
         }
     }
--- a/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp	Tue May 11 16:27:42 2010 +0300
@@ -29,6 +29,7 @@
 #include "aknitemactionmenudata.h"
 #include "aknitemactionmenuregister.h"
 #include "akntrace.h"
+#include "aknmarkingmode.h"
 
 /**
  * Index for invalid list index.
@@ -78,6 +79,7 @@
     delete iPopupMenu;
     delete iMenuPane;
     delete iMenuData;
+    delete iMarking;
     iStates.Close();
     
     for ( TInt i = 0; i < iObservers.Count(); ++i )
@@ -378,6 +380,18 @@
 
 
 // ---------------------------------------------------------------------------
+// CAknItemActionMenu::MarkingMode
+// ---------------------------------------------------------------------------
+//
+CAknMarkingMode& CAknItemActionMenu::MarkingMode()
+    {
+    _AKNTRACE_FUNC_ENTER;
+    _AKNTRACE_FUNC_EXIT;
+    return *iMarking;
+    }
+
+
+// ---------------------------------------------------------------------------
 // CAknItemActionMenu::CAknItemActionMenu
 // ---------------------------------------------------------------------------
 //
@@ -387,7 +401,8 @@
     iMenuBar( NULL ),
     iMenuPane( NULL ),
     iMenuData( NULL ),
-    iOwner( aOwner )
+    iOwner( aOwner ),
+    iMarking( NULL )
     {
     _AKNTRACE_FUNC_ENTER;
     AKNTASHOOK_ADD( this, "CAknItemActionMenu" );
@@ -404,6 +419,7 @@
     _AKNTRACE_FUNC_ENTER;
     AddCollectionStateL( aCollection );
     iMenuData = CAknItemActionMenuData::NewL();
+    iMarking = CAknMarkingMode::NewL( *this, iStates );
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -496,17 +512,24 @@
             {
             TMenuItemTextBuf text = iMenuData->MenuItemText( aCommandId );
             iMenuData->Reset();
-            iMenuPane->AddCascadeMenuItemsToActionMenuL(
-                    cascadeId, EFalse, *iMenuData );
+            iMenuPane->AddCascadeMenuItemsToMenuL(
+                    cascadeId, EFalse, ETrue, iMenuData );
             aCommandId = LaunchSubMenuQueryL( text );
             }
                 
-        if ( aCommandId > 0 && iMenuBarObserver )
+        if ( aCommandId > 0 && iMenuData->MenuItemCommandId( aCommandId ) 
+                == EAknCmdMarkingModeMarkOne && iMenuBar )
+            {
+            MarkingMode().MarkCurrentItemL();
+            }
+        else if ( aCommandId > 0 && iMenuBarObserver )
             {
             iProcessingCommand = ETrue; 
             iMenuBarObserver->ProcessCommandL(
                     iMenuData->MenuItemCommandId( aCommandId ) );
             iProcessingCommand = EFalse; 
+            // Try exit marking mode
+            MarkingMode().TryExitMarkingMode();
             }
         }
     // Inform collection that submenu was closed
@@ -538,3 +561,4 @@
     }
 
 // End of File
+
--- a/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp	Tue May 11 16:27:42 2010 +0300
@@ -41,7 +41,7 @@
 
     if ( instance )
         {
-        instance->DoSetConstructingMenuBarOwnerL( aMenuBarOwner ); 
+        instance->iMenuBarOwner = aMenuBarOwner;
         }
 
     _AKNTRACE_FUNC_EXIT;
@@ -905,28 +905,6 @@
     return instance;
     }
 
-// ---------------------------------------------------------------------------
-// AknItemActionMenuRegister::DoSetConstructingMenuBarOwnerL
-// ---------------------------------------------------------------------------
-//
-void AknItemActionMenuRegister::DoSetConstructingMenuBarOwnerL( 
-        MObjectProvider* aMenuBarOwner )
-    {
-    if ( aMenuBarOwner )
-        {
-        CEikDialog* dialog( NULL );
-        aMenuBarOwner->MopGetObjectNoChaining( dialog );
-        // Get information if the constructing menu bar owner is a dialog  
-        // and store it to iIsConstructingDialog
-        if ( dialog )
-            {
-            iIsConstructingDialog = ETrue; 
-            }
-        }
-    
-    iMenuBarOwner = aMenuBarOwner;
-    }
-
 
 // ---------------------------------------------------------------------------
 // AknItemActionMenuRegister::DoRemoveConstructingMenuBarOwner
@@ -945,21 +923,6 @@
         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 )
-                {
-                CEikMenuBar* menuBar = FindCurrentMenuBar(); 
-
-                if ( menuBar )
-                    {
-                    TRAP_IGNORE( AddRegisterEntryL( *menuBar, *data.iMenu ) );
-                    iUnregisteredMenus.Remove( i );
-                    continue;
-                    }
-                }
             }
         
         ++i;
@@ -978,7 +941,6 @@
     
     if ( iMenuBarOwner == aMenuBarOwner )
         {
-        iIsConstructingDialog = EFalse; 
         iMenuBarOwner = NULL;
         }
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/EikStd/coctlsrc/aknmarkingmode.cpp	Tue May 11 16:27:42 2010 +0300
@@ -0,0 +1,369 @@
+/*
+* Copyright (c) 2009 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Marking mode handler.
+*
+*/
+
+#include <akncollection.h>
+#include <aknitemactionmenu.h>
+#include <eikspane.h>
+#include <aknnavide.h>
+#include <barsread.h>
+#include <AknUtils.h>
+
+#include "aknmarkingmode.h"
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::NewL
+// ---------------------------------------------------------------------------
+//
+CAknMarkingMode* CAknMarkingMode::NewL(
+        CAknItemActionMenu& aItemActionMenu,
+        CollectionArray& aArray )
+    {
+    CAknMarkingMode* self =
+        new ( ELeave ) CAknMarkingMode( aItemActionMenu, aArray );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::~CAknMarkingMode
+// ---------------------------------------------------------------------------
+//
+CAknMarkingMode::~CAknMarkingMode()
+    {
+    delete iMarkingDecorator;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::SetCollectionMultipleMarkingState
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::SetCollectionMultipleMarkingState( TBool aActive )
+    {
+    for ( TInt i = 0; i < iCollections.Count(); i++ )
+        {
+        MAknCollection* collection( iCollections[ i ] );
+        // Assume the command applies to first list with multiple selection
+        if ( collection->CollectionState() &
+                MAknCollection::EStateMultipleSelection )
+            {
+            MAknMarkingCollection* markingCollection
+                = MarkingCollection( *collection );
+            if ( markingCollection )
+                {
+                markingCollection->SetMultipleMarkingState( aActive );
+                TRAP_IGNORE( UpdateMarkingModeNaviPaneL( aActive ) );
+                }
+            iItemActionMenu.CollectionChanged( *collection );
+            break;
+            }
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::TryExitMarkingMode
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::TryExitMarkingMode()
+    {
+    for ( TInt i = 0; i < iCollections.Count(); i++ )
+        {
+        MAknCollection* collection( iCollections[ i ] );
+        MAknMarkingCollection* markingCollection
+            = MarkingCollection( *collection );
+        if ( markingCollection && markingCollection->MarkingState(
+                ) & MAknMarkingCollection::EStateMarkingMode )
+            {
+            if ( markingCollection->ExitMarkingMode() )
+                {
+                SetCollectionMultipleMarkingState( EFalse );
+                }
+            }
+        break;
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MultipleMarkingActive
+// ---------------------------------------------------------------------------
+//
+TBool CAknMarkingMode::MultipleMarkingActive() const
+    {
+    TBool markingActive( EFalse );
+    for ( TInt i = 0; i < iCollections.Count(); i++ )
+        {
+        MAknCollection* collection( iCollections[ i ] );
+        if ( collection->CollectionState() &
+                MAknCollection::EStateCollectionVisible )
+            {
+            MAknMarkingCollection* markingCollection
+                = MarkingCollection( *collection );
+            if ( markingCollection )
+                {
+                markingActive = markingCollection->MarkingState()
+                    & MAknMarkingCollection::EStateMarkingMode;
+                }
+            break;
+            }
+        }
+    return markingActive;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MarkedItems
+// ---------------------------------------------------------------------------
+//
+TBool CAknMarkingMode::MarkedItems() const
+    {
+    TBool markedItems( EFalse );
+    for ( TInt i = 0; i < iCollections.Count(); i++ )
+        {
+        MAknCollection* collection( iCollections[ i ] );
+        if ( collection->CollectionState() &
+                MAknCollection::EStateCollectionVisible )
+            {
+            MAknMarkingCollection* markingCollection
+                = MarkingCollection( *collection );
+            if ( markingCollection )
+                {
+                TInt markingState = markingCollection->MarkingState();
+                if ( markingState &
+                        MAknMarkingCollection::EStateMarkingMode )
+                    {
+                    markedItems = markingState
+                        & MAknMarkingCollection::EStateMarkedItems;
+                    }
+                }
+            break;
+            }
+        }
+    return markedItems;
+    }
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::CollectionEmpty
+// ---------------------------------------------------------------------------
+//
+TBool CAknMarkingMode::CollectionEmpty() const
+    {
+    TBool empty( EFalse );
+     for ( TInt i = 0; i < iCollections.Count(); i++ )
+         {
+         MAknCollection* collection( iCollections[ i ] );
+         if ( collection->CollectionState() &
+                 MAknCollection::EStateCollectionVisible )
+             {
+             MAknMarkingCollection* markingCollection
+                 = MarkingCollection( *collection );
+             if ( markingCollection )
+                 {
+                 TInt markingState = markingCollection->MarkingState();
+                 if ( markingState &
+                         MAknMarkingCollection::EStateMarkingMode )
+                     {
+                     empty = markingState
+                         & MAknMarkingCollection::EStateCollectionEmpty;
+                     }
+                 }
+             break;
+             }
+         }
+    return empty;    
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MarkAllL
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::MarkAllL()
+    {
+    MAknMarkingCollection* collection = ActiveMarkingCollection();
+    
+    if ( collection )
+        {
+        collection->MarkAllL();
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::UnmarkAll
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::UnmarkAll()
+    {
+    MAknMarkingCollection* collection = ActiveMarkingCollection();
+    
+    if ( collection )
+        {
+        collection->UnmarkAll();
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MarkCurrentItemL
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::MarkCurrentItemL()
+    {
+    MAknMarkingCollection* collection = ActiveMarkingCollection();
+    
+    // first activate marking mode if needed
+    if ( !collection )
+        {
+        SetCollectionMultipleMarkingState( ETrue );
+        collection = ActiveMarkingCollection();
+        }
+
+    // then mark the current item
+    if ( collection )
+        {
+        collection->MarkCurrentItemL();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::CurrentItemMarkable
+// ---------------------------------------------------------------------------
+//
+TBool CAknMarkingMode::CurrentItemMarkable()
+    {
+    return MarkingCollection()->CurrentItemMarkable();
+    }
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::CAknMarkingMode
+// ---------------------------------------------------------------------------
+//
+CAknMarkingMode::CAknMarkingMode(
+        CAknItemActionMenu& aItemActionMenu,
+        CollectionArray& aArray )
+    : iCollections( aArray ),
+    iItemActionMenu( aItemActionMenu ),
+    iMarkingDecorator( NULL )
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MarkingCollection
+// ---------------------------------------------------------------------------
+//
+MAknMarkingCollection* CAknMarkingMode::MarkingCollection(
+        MAknCollection& aCollection )
+    {
+    TAny* extension( NULL );
+    aCollection.CollectionExtension(
+            MAknMarkingCollection::TYPE, extension, NULL );
+    return static_cast<MAknMarkingCollection*>( extension );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MarkingCollection
+// ---------------------------------------------------------------------------
+//
+MAknMarkingCollection* CAknMarkingMode::MarkingCollection()
+    {
+    for ( TInt i = 0; i < iCollections.Count(); i++ )
+        {
+        MAknCollection* collection( iCollections[ i ] );
+        if ( collection->CollectionState() &
+                MAknCollection::EStateCollectionVisible )
+            {
+            return MarkingCollection( *collection );
+            }
+        }
+
+    return NULL;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::ActiveMarkingCollection
+// ---------------------------------------------------------------------------
+//
+MAknMarkingCollection* CAknMarkingMode::ActiveMarkingCollection()
+    {
+    for ( TInt i = 0; i < iCollections.Count(); i++ )
+        {
+        MAknCollection* collection( iCollections[ i ] );
+        
+        MAknMarkingCollection* markingCollection = 
+                MarkingCollection( *collection );
+        
+        if ( markingCollection && markingCollection->MarkingState() & 
+                MAknMarkingCollection::EStateMarkingMode )
+            {
+            return markingCollection;
+            }
+        }
+
+    return NULL;
+    }
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::UpdateMarkingModeNaviPaneL
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::UpdateMarkingModeNaviPaneL( TBool aEnable )
+    {
+    CEikonEnv* eikonEnv = CEikonEnv::Static();
+        
+    if ( eikonEnv && eikonEnv->AppUiFactory() )
+        {
+        CEikStatusPane* statusPane = eikonEnv->AppUiFactory()->StatusPane();
+
+        if ( statusPane )
+            {
+            // get navi pane
+            CAknNavigationControlContainer* naviPane =
+                    (CAknNavigationControlContainer *)statusPane->ControlL(
+                            TUid::Uid(EEikStatusPaneUidNavi));
+            if ( naviPane )
+                {
+                if ( !iMarkingDecorator )
+                    {
+                    TResourceReader reader;
+                    eikonEnv->CreateResourceReaderLC( 
+                            reader, R_MARKING_MODE_NAVI_PANE );
+    
+                    iMarkingDecorator = naviPane->CreateNavigationLabelL( 
+                                reader );
+                    CleanupStack::PopAndDestroy(); // reader
+                    }
+    
+                if ( aEnable ) 
+                    {
+                    naviPane->PushL( *iMarkingDecorator ); 
+                    }
+                else 
+                    {
+                    naviPane->Pop( iMarkingDecorator ); 
+                    }
+                naviPane->DrawDeferred();
+                }
+            }
+        }
+    }
+
+// End of File
--- a/uifw/EikStd/coctlsrc/aknstyluspopupmenu.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknstyluspopupmenu.cpp	Tue May 11 16:27:42 2010 +0300
@@ -191,7 +191,6 @@
             
         iController->SetPopUpShowDelay( KDefaultPopUpShowDelay );
         iController->SetPopUpHideDelay( KDefaultPopUpHideDelay );
-        iContent->Parent()->DrawableWindow()->SetNonFading(ETrue);
         }
     
     TSize size(iController->Size());
@@ -414,6 +413,7 @@
             {
             iPreviewPopup->HidePopUp();
             }
+
         if ( iController )
             {
             iController->HidePopUp();
--- a/uifw/EikStd/coctlsrc/aknstyluspopupmenuphysicshandler.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknstyluspopupmenuphysicshandler.cpp	Tue May 11 16:27:42 2010 +0300
@@ -146,17 +146,6 @@
         iPressedDown = EFalse;              
         TPoint adjustedPosition( aPointerEvent.iPosition + TPoint(0, Offset() ) );
         TInt item = iPopUpMenuContent->ContainingItem( adjustedPosition );
-        if ( item != KNoItemSelected )
-            {
-        MTouchFeedback* feedback = MTouchFeedback::Instance();
-        if ( feedback )
-            {
-                feedback->InstantFeedback( NULL,
-                                           ETouchFeedbackList,
-                                           ETouchFeedbackVibra,
-                                           aPointerEvent );
-                }
-            }
  
         TPoint distance( 0, iStartPosition.iY - aPointerEvent.iPosition.iY );
         if ( iPhysics->StartPhysics( distance, iStartTime ) )
@@ -170,6 +159,15 @@
             {
             if ( iViewRect.Contains( aPointerEvent.iPosition ) )
                 {
+                if( AknLayoutUtils::PenEnabled() )
+                    {
+                    MTouchFeedback* feedback = MTouchFeedback::Instance();
+                    if( feedback )
+                        {
+                        feedback->InstantFeedback( NULL, ETouchFeedbackList,
+                                            ETouchFeedbackVibra, aPointerEvent );
+                        }
+                    }
                 iPopUpMenuContent->SelectItemL( 
                         iPopUpMenuContent->CurrentItem() );
                 }
--- a/uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp	Tue May 11 16:27:42 2010 +0300
@@ -621,7 +621,7 @@
                         // focus has moved from one button to another due to dragging, 
                         // give sensitive feedback
                         MTouchFeedback* feedback = MTouchFeedback::Instance();
-                        if ( feedback && 
+                        if ( feedback && !button->IsDimmed() &&
                         ( aPointerEvent.iType == TPointerEvent::EDrag ||
                           aPointerEvent.iType == TPointerEvent::EButtonRepeat ) )
                             {
@@ -645,12 +645,14 @@
                     {
                     // Up and down events are in different items, give basic
                     // feedback to the released item.
-                    if ( ii != iDownItem )
+                    if ( ii != iDownItem && !button->IsDimmed() )
                         {
                         MTouchFeedback* feedback = MTouchFeedback::Instance();
                         if ( feedback )
                             {
-                            feedback->InstantFeedback( ETouchFeedbackBasicButton );
+                            feedback->InstantFeedback(
+                                    this, ETouchFeedbackBasicButton,
+                                    ETouchFeedbackVibra, aPointerEvent );
                             }
                         }
                 
--- a/uifw/EikStd/coctlsrc/eikcba.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/eikcba.cpp	Tue May 11 16:27:42 2010 +0300
@@ -56,6 +56,7 @@
 #include <aknitemactionmenu.h>
 #include "akncollectionobserver.h"
 #include "aknitemactionmenuregister.h"
+#include "aknmarkingmode.h"
 #include "akntrace.h"
 /**
  * Color value for transparent pixel (ARGB format).
@@ -213,7 +214,8 @@
     ECbaSingleClickEnabled, // single click enabled in appUi
     ECbaItemSoftkeyDisabled, // item specific softkey disabled
     ECbaItemSpecificSoftkeyInUse, // item specific softkey is in use
-    ECbaItemSoftkeyDisabledByClient // client has disabled item specific softkey
+    ECbaItemSoftkeyDisabledByClient, // client disabled item specific softkey
+    ECbaMultipleMarkingActive // multiple marking has changed RSK
     };
 
 enum TCbaLayers
@@ -717,6 +719,28 @@
         }
 
     /**
+     * Returns ETrue if the command cancels multiple marking and should not
+     * be forwarded to actual command observer.
+     * 
+     * @return ETrue if multiple marking was cancelled.
+     */
+    TBool CancelMultipleMarking( TInt aCommandId )
+        {
+        _AKNTRACE_FUNC_ENTER;
+        TBool cancelled( EFalse );
+        if ( aCommandId == EAknSoftkeyCancel
+                && iItemActionMenu
+                && iOwner.Flags().IsSet( ECbaMultipleMarkingActive ) )
+            {
+            iItemActionMenu->MarkingMode().SetCollectionMultipleMarkingState(
+                    EFalse );
+            cancelled = ETrue;
+            }
+        _AKNTRACE_FUNC_EXIT;
+        return cancelled;
+        }
+
+    /**
      * From MAknCollectionObserver.
      * This method is used to set the item action menu to observer.
      * 
@@ -745,6 +769,8 @@
             {
             iOwner.UpdateItemSpecificSoftkey();
             }
+
+        iOwner.UpdateMultipleMarkingSoftkey();
         _AKNTRACE_FUNC_EXIT;
         }
 
@@ -764,19 +790,15 @@
     /*
      * Using the special theme Id draw background
      */
-    void DrawSemiTransparency( CWindowGc& aGc, 
-            const TRect& aRect )
+    void DrawSemiTransparency( CWindowGc& aGc )
         {
         _AKNTRACE_FUNC_ENTER;
-        aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-        aGc.SetBrushColor( TRgb(128, 128, 128, 64) );
-        aGc.Clear();
-        
-        TAknsItemID SemiButtonID = KAknsIIDQgnHomeButtonWidget;
-        TAknsItemID SemiButtonCenterID = KAknsIIDQgnHomeButtonWidgetCenter;
-        TAknsItemID SemiButtonPressedID = KAknsIIDQgnHomeButtonWidget;
-        TAknsItemID SemiButtonPressedCenterID = KAknsIIDQsnFrHomeCenterPressed;
-
+        
+        TAknsItemID SemiButtonID              = KAknsIIDQgnFrSctrlSkButton;
+        TAknsItemID SemiButtonCenterID        = KAknsIIDQgnFrSctrlSkButtonCenter;
+        TAknsItemID SemiButtonPressedID       = KAknsIIDQgnFrSctrlSkButtonPressed;
+        TAknsItemID SemiButtonPressedCenterID = KAknsIIDQgnFrSctrlSkButtonCenterPressed;
+        
         CEikCbaButton* button1 = static_cast<CEikCbaButton*>
             (iOwner.Control(KControlArrayCBAButton1Posn));
         CEikCbaButton* button2 = static_cast<CEikCbaButton*>
@@ -784,9 +806,6 @@
 
         if (IsMskEnabledLayoutActive())
             {
-            TRect innerRect = iMiddleFrameOuterRect;
-            innerRect.Shrink(4, 4);
-
             CEikCbaButton* buttonMSK = static_cast<CEikCbaButton*>
                 (iOwner.Control(KControlArrayCBAButtonMSKPosn));
 
@@ -794,7 +813,7 @@
                 {
                 AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
                         iMiddleFrameOuterRect,
-                        innerRect,//iMiddleFrameInnerRect,
+                        iMiddleFrameInnerRect,
                         SemiButtonPressedID,
                         SemiButtonPressedCenterID);
                 }
@@ -802,20 +821,17 @@
                 {
                 AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
                         iMiddleFrameOuterRect,
-                        innerRect,//iMiddleFrameInnerRect,
+                        iMiddleFrameInnerRect,
                         SemiButtonID,
                         SemiButtonCenterID);
                 }
             }
 
-        TRect innerRect = iLeftFrameOuterRect;
-        innerRect.Shrink(4, 4);
-
         if (button1 && button1->PressedDown())
             {
             AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
                     iLeftFrameOuterRect,
-                    innerRect,//iLeftFrameInnerRect,
+                    iLeftFrameInnerRect,
                     SemiButtonPressedID,
                     SemiButtonPressedCenterID);
             }
@@ -823,18 +839,16 @@
             {
             AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
                     iLeftFrameOuterRect,
-                    innerRect,//iLeftFrameInnerRect,
+                    iLeftFrameInnerRect,
                     SemiButtonID,
                     SemiButtonCenterID);
             }
 
-        innerRect = iRightFrameOuterRect;
-        innerRect.Shrink(4, 4);
         if (button2 && button2->PressedDown())
             {
             AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
                     iRightFrameOuterRect,
-                    innerRect,//iRightFrameInnerRect,
+                    iRightFrameInnerRect,
                     SemiButtonPressedID,
                     SemiButtonPressedCenterID);
             }
@@ -842,7 +856,7 @@
             {
             AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
                     iRightFrameOuterRect,
-                    innerRect,//iRightFrameInnerRect,
+                    iRightFrameInnerRect,
                     SemiButtonID,
                     SemiButtonCenterID);
             }                    
@@ -1606,8 +1620,6 @@
             }
         }
 
-    // Set CBA faded in case the softkeys are empty.
-    SetFadeState();
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -1703,8 +1715,6 @@
             }
         }
 
-    // Set CBA faded in case the softkeys are empty.
-    SetFadeState();
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -2052,11 +2062,7 @@
                            const CFbsBitmap* /*aMask*/ )
     {
     _AKNTRACE_FUNC_ENTER;
-    // We need to check if this call changes the softkeys from being
-    // empty to having a command or vice versa to be able to maintain
-    // correct fade state.
-    TBool isEmptyBefore( IsEmpty() );
-    
+
     TEikGroupControl& groupCtrl = (*iControlArray)[aPosition];
     groupCtrl.iId = aCommandId;
     groupCtrl.iLongId = 0;
@@ -2085,13 +2091,6 @@
         buttonState->SetTextL( *aText );
         buttonState->SetCommand( aCommandId );
         }
-    
-    TBool isEmptyAfter( IsEmpty() );
-    
-    if ( !COMPARE_BOOLS( isEmptyBefore, isEmptyAfter ) )
-        {
-        SetFadeState();
-        }
 
     ReportContentChangedEvent();      
     _AKNTRACE_FUNC_EXIT;
@@ -2278,10 +2277,12 @@
                                                const TDesC* aText)
     {
     _AKNTRACE_FUNC_ENTER;
-    // We need to check if this call changes the softkeys from being
-    // empty to having a command or vice versa to be able to maintain
-    // correct fade state.
-    TBool isEmptyBefore( IsEmpty() );
+    
+    if ( !CommandChangeAllowed() )
+        {
+        _AKNTRACE_FUNC_EXIT;
+        return;
+        }
     
     TEikGroupControl& groupCtrl = (*iControlArray)[aPosition];
     
@@ -2317,13 +2318,6 @@
         }
     SetMSKIconL(); // If MSK id was changed, this sets MSK icon accordingly.
 
-    TBool isEmptyAfter( IsEmpty() );
-
-    if ( !COMPARE_BOOLS( isEmptyBefore, isEmptyAfter ) )
-        {
-        SetFadeState();
-        }
-
     ReportContentChangedEvent();
     _AKNTRACE_FUNC_EXIT;
     }
@@ -2503,11 +2497,6 @@
     SizeChanged();
     
     TBool isEmptyAfter( IsEmpty() );
-    
-    if ( !COMPARE_BOOLS( isEmptyBefore, isEmptyAfter ) )
-        {
-        SetFadeState();
-        }
 
     DrawDeferred();
     ReportContentChangedEvent();
@@ -3414,7 +3403,9 @@
     
     //has not supported semi-transparent, ignore the flag at this moment.
     //TODO: if the tranparent style CBA is approved and the new icon was delivered, open it again.
-    iCbaFlags &= ~EEikCbaFlagSemiTransparent;
+    
+    //steven yao
+    //iCbaFlags &= ~EEikCbaFlagSemiTransparent;
     
     if (( iCbaFlags & EEikCbaFlagTransparent || iCbaFlags & EEikCbaFlagSemiTransparent ) && 
             CAknEnv::Static()->TransparencyEnabled() )
@@ -3632,7 +3623,13 @@
 
             if (aKeyEvent.iRepeats == 0 && shortCommand)
                 {
-                iCommandObserver->ProcessCommandL((TInt)shortCommand);
+                // Notify command observer only if multiple marking
+                // was not cancelled
+                if ( !iExtension || !iExtension->CancelMultipleMarking(
+                        shortCommand ) )
+                    {
+                    iCommandObserver->ProcessCommandL( ( TInt ) shortCommand );
+                    }
                 }
             else if (longCommand)
                 {
@@ -4176,7 +4173,13 @@
 
                     if( shortCommand )
                         {
-                        iCommandObserver->ProcessCommandL( shortCommand );
+                        // Notify command observer only if multiple marking
+                        // was not cancelled
+                        if ( !iExtension || !iExtension->CancelMultipleMarking(
+                                shortCommand ) )
+                            {
+                            iCommandObserver->ProcessCommandL( shortCommand );
+                            }
                         }
 
                     break;
@@ -4362,7 +4365,6 @@
         case KEikMessageUnfadeWindows:
             {
             DoLayoutChange();
-            SetFadeState();
             
             if ( iFlags.IsSet( ECbaInsideDialog ) )
                 {
@@ -4390,8 +4392,7 @@
                  AknStatuspaneUtils::IdleLayoutActive() )
                 {
                 SetMSKVisibility( MskAllowed() );
-                }                
-            SetFadeState();
+                }
             break;
             }
 
@@ -4539,13 +4540,13 @@
         return;
         }
     
-//    if ( iCbaFlags & EEikCbaFlagSemiTransparent )
-//        {
-//        CWindowGc &gc = SystemGc();
-//
-//        iExtension->DrawSemiTransparency( gc, Rect() );
-//        return;
-//        }
+    if ( iCbaFlags & EEikCbaFlagSemiTransparent )
+        {
+        CWindowGc &gc = SystemGc();
+
+        iExtension->DrawSemiTransparency( gc );
+        return;
+        }
 
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
     
@@ -4604,7 +4605,7 @@
                 gc.BitBlt( leftSKRect.iTl, iExtension->iLskPostingOverlayBitmap, 
                     TRect( leftSKSize ) );
                 }
-            else if ( !( ( iCbaFlags & EEikCbaFlagTransparent) || ( iCbaFlags & EEikCbaFlagSemiTransparent))  )
+            else if ( !( iCbaFlags & EEikCbaFlagTransparent ) )
                 {// Old way to render
                 if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
                     {
@@ -4728,7 +4729,7 @@
             gc.BitBlt( bottomSKRect.iTl, iExtension->iLskPostingOverlayBitmap, 
                 TRect( bottomSKRect.Size() ) );
             }
-        else if ( !( ( iCbaFlags & EEikCbaFlagTransparent) || ( iCbaFlags & EEikCbaFlagSemiTransparent))  )
+        else if ( !( iCbaFlags & EEikCbaFlagTransparent) )
             {
             // Old way to render
             if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
@@ -5224,18 +5225,29 @@
     AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screen );
     
     TBool isLandscape( Layout_Meta_Data::IsLandscapeOrientation() );
-    TBool flatLscLayout( isLandscape &&
-                         AknStatuspaneUtils::FlatLayoutActive() );
+    TInt spLayout( AknStatuspaneUtils::CurrentStatusPaneLayoutResId() );
+    
+    // Treat the empty status pane layout the same way as the flat layout
+    // in landscape orientation, as the CBA layout is the same in both.
+    TBool flatLscLayout(
+        isLandscape &&
+        ( spLayout == R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT || 
+          spLayout == R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT ||
+          spLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ||
+          spLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT ||
+          spLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT_NO_SOFTKEYS ||
+          spLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS ||
+          spLayout == R_AVKON_STATUS_PANE_LAYOUT_EMPTY ) );
     
     // We must check for landscape mode bottom softkeys.
     TInt bottomPaneVariety = isLandscape ? ( flatLscLayout ? 2 : 6 ) : 1;
-        
+    
+    // Skip application_window between screen and area_bottom_pane since
+    // screen and application_window are always the same.
     TAknWindowComponentLayout controlPane(
         DoCompose(
-            AknLayoutScalable_Avkon::application_window( 0 ),
-            DoCompose(
-                AknLayoutScalable_Avkon::area_bottom_pane( bottomPaneVariety ),
-                AknLayoutScalable_Avkon::control_pane() ) ) );
+            AknLayoutScalable_Avkon::area_bottom_pane( bottomPaneVariety ),
+            AknLayoutScalable_Avkon::control_pane() ) );
     
     TAknLayoutRect cbarect;
     cbarect.LayoutRect( screen, controlPane.LayoutLine() );
@@ -5250,7 +5262,7 @@
     
     // Set the softkey frame rectangles in touch layouts.
     if ( iExtension && AknLayoutUtils::PenEnabled() )
-        {        
+        {
         TAknLayoutRect layoutRect;
         TBool frameSizeChanged( EFalse );
 
@@ -7238,28 +7250,6 @@
 
 
 // ---------------------------------------------------------------------------
-// CEikCba::SetFadeState
-// Sets the CBA faded if it's contents are empty.
-// ---------------------------------------------------------------------------
-//
-void CEikCba::SetFadeState()
-    {
-    _AKNTRACE_FUNC_ENTER;
-    TBool canBeFaded =
-        IsEmpty() && !( ( iCbaFlags & EEikCbaFlagTransparent )
-        || ( iExtension && iExtension->iEnablePostingTransparency ) );
-
-    // No unfading when system is faded
-    if ( !( !canBeFaded
-            && static_cast<CAknAppUi*>( iCoeEnv->AppUi() )->IsFaded() ) )
-        {
-        Window().SetFaded( canBeFaded, RWindowTreeNode::EFadeIncludeChildren );
-        }
-    _AKNTRACE_FUNC_EXIT;
-    }
-
-
-// ---------------------------------------------------------------------------
 // CEikCba::UpdateLabels
 // Updates softkey labels in case of embedded softkeys.
 // ---------------------------------------------------------------------------
@@ -7851,6 +7841,60 @@
     }
 
 
+// ---------------------------------------------------------------------------
+// CEikCba::UpdateMultipleMarkingSoftkey
+// Updates RSK when multiple marking is activated or deactivated.
+// ---------------------------------------------------------------------------
+//     
+void CEikCba::UpdateMultipleMarkingSoftkey()
+    {
+    _AKNTRACE_FUNC_ENTER;
+    if ( iFlags.IsSet( ECbaSingleClickEnabled )
+            && iExtension && iExtension->iItemActionMenu )
+        {
+        TBool markingActive(
+                iExtension->iItemActionMenu->MarkingMode(
+                        ).MultipleMarkingActive() );
+        TBool markingActivated( iFlags.IsSet( ECbaMultipleMarkingActive ) );
+        if ( markingActive && !markingActivated )
+            {
+            TRAPD( error, 
+                AddCommandSetToStackL( R_AVKON_SOFTKEYS_OPTIONS_CANCEL ) );
+                
+            if ( error == KErrNone )
+                {
+                iFlags.Set( ECbaMultipleMarkingActive );
+                }
+            }
+        else if ( !markingActive && markingActivated )
+            {
+            RemoveCommandFromStack(
+                    KControlArrayCBAButton1Posn, EAknSoftkeyOptions );
+            RemoveCommandFromStack(
+                    KControlArrayCBAButton2Posn, EAknSoftkeyCancel );
+            iFlags.Clear( ECbaMultipleMarkingActive );
+            }
+        }
+    _AKNTRACE_FUNC_EXIT;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CEikCba::CommandChangeAllowed
+// 
+// ---------------------------------------------------------------------------
+//     
+TBool CEikCba::CommandChangeAllowed()
+    {
+    if ( iFlags.IsSet( ECbaSingleClickEnabled ) 
+            && iFlags.IsSet( ECbaMultipleMarkingActive ) )
+        {
+        return EFalse;
+        }
+    return ETrue;
+    }
+
+
 //
 // class CEikCbaButton
 //
--- a/uifw/EikStd/dlginc/aknrecordinggc.h	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlginc/aknrecordinggc.h	Tue May 11 16:27:42 2010 +0300
@@ -165,7 +165,9 @@
             ESetBrushStyle,
             EDrawRect,
             EClear,
-            EDrawLine
+            EDrawLine,
+            EUseBrushPattern,
+            EDiscardBrushPattern
             };
         
         public:
--- a/uifw/EikStd/dlgsrc/AknMediatorFacade.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlgsrc/AknMediatorFacade.cpp	Tue May 11 16:27:42 2010 +0300
@@ -20,7 +20,7 @@
 #include <eikapp.h>
 #include <coedef.h>
 #include <MediatorDomainUIDs.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
 
 #include "AknMediatorFacade.h" 
 #include "AknMediatorObserver.h"
--- a/uifw/EikStd/dlgsrc/EIKCAPC.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKCAPC.CPP	Tue May 11 16:27:42 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -283,7 +283,8 @@
 * Extension class for additional data members.
 *
 */
-NONSHARABLE_CLASS( CEikCapCExtension ): public MEikFormAnimObserver
+NONSHARABLE_CLASS( CEikCapCExtension ) : public CBase,
+                                         public MEikFormAnimObserver
     {
     friend class CEikCaptionedControl ;
 
@@ -379,7 +380,7 @@
     iViewModeHighlightControlContext ( NULL ) ,
     iEditModeHighlightControlContextPressed( NULL ),
     iViewModeHighlightControlContextPressed( NULL ),
-    iPreviousRect( TPoint(0, 0), TSize(0, 0) ) ,
+    iPreviousRect( 0, 0, 0, 0 ),
     iPreviousState( EFalse ) ,
     iPressDownEffect( EFalse ),
     iXOffsetForDataPaneInEditMode( ELayoutEmpty ) ,
@@ -389,6 +390,7 @@
 	, iIndicator(NULL),
 	iIndicator2(NULL),
 	iObserver(NULL),
+	iSimulatedDownEvent( EFalse ),
     iFeedback( MTouchFeedback::Instance() ),
 	iIdle(NULL),
 	iIdleData(NULL),
@@ -400,7 +402,7 @@
         iUsesSingleClick = iAvkonAppUi->IsSingleClickCompatible();
         }
     _AKNTRACE_FUNC_EXIT;
-    };
+    }
 
 CEikCapCExtension::~CEikCapCExtension()
     {
@@ -488,26 +490,24 @@
          && ( aPointerEvent.iType == TPointerEvent::EButton1Down 
             || aPointerEvent.iType == TPointerEvent::EButton1Up ) )
         {
-
         // Check control type
         TBool edwinControl( LaunchInputType() );
         TBool simulate = EFalse;
-        if ( aPointerEvent.iType == TPointerEvent::EButton1Down
-                && iSelf->Rect().Contains( aPointerEvent.iPosition )
-                && !iSelf->iControl->Rect().Contains(
-                        aPointerEvent.iPosition ) )
+
+        if ( iSelf->Rect().Contains( aPointerEvent.iPosition ) )
             {
-            iSimulatedDownEvent = ETrue;
-            if ( !edwinControl )
+            if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
+                 !iSelf->iControl->Rect().Contains( aPointerEvent.iPosition ) )
+                {
+                iSimulatedDownEvent = ETrue;
+                simulate = ETrue;
+                }
+            else if ( aPointerEvent.iType == TPointerEvent::EButton1Up &&
+                      iSimulatedDownEvent )
                 {
                 simulate = ETrue;
                 }
             }
-        else if ( aPointerEvent.iType == TPointerEvent::EButton1Up
-                && iSimulatedDownEvent )
-            {
-            simulate = ETrue;
-            }
 
         // Simulate pointer event to control
         if ( simulate && !edwinControl )
@@ -519,23 +519,39 @@
             }
 
         // With edwin do action directly (due to cursor problems)
-        else if ( edwinControl && simulate
-                && aPointerEvent.iType == TPointerEvent::EButton1Up )
+        else if ( edwinControl &&
+                  simulate &&
+                  ( aPointerEvent.iType == TPointerEvent::EButton1Up ||
+                    aPointerEvent.iType == TPointerEvent::EButton1Down ) )
             {
-            CAknExtendedInputCapabilities* input( NULL );
-            iSelf->iControl->InputCapabilities().ObjectProvider(
-                    )->MopGetObjectNoChaining( input );
-            if ( input )
+            // Basic list feedback is given instead of sensitive edit
+            // feedback when tapping editor fields in forms.
+            if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+                {
+                iFeedback->InstantFeedback( iSelf->iControl,
+                                            ETouchFeedbackList );
+                }
+            else
                 {
-                iFeedback->InstantFeedback(
-                        iSelf->iControl,  ETouchFeedbackEdit,
-                        ETouchFeedbackVibra, aPointerEvent );
-                input->ReportEventL(
+                iFeedback->InstantFeedback( iSelf->iControl,
+                                            ETouchFeedbackList,
+                                            ETouchFeedbackVibra,
+                                            aPointerEvent );
+                
+                CAknExtendedInputCapabilities* input( NULL );
+                iSelf->iControl->InputCapabilities().ObjectProvider(
+                        )->MopGetObjectNoChaining( input );
+                
+                if ( input )
+                    {
+                    input->ReportEventL(
                         CAknExtendedInputCapabilities::\
-                        MAknEventObserver::EActivatePenInputRequest,
+                            MAknEventObserver::EActivatePenInputRequest,
                         NULL );
+                    }
                 }
             }
+
         if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
             {
             iSimulatedDownEvent = EFalse;
@@ -1405,25 +1421,28 @@
 	return EFalse;	
 }
 
-void CEikCaptionedControl::ScrollBackEditor()
-{
-_AKNTRACE_FUNC_ENTER;
-        //
-		// For long single-line edwin, scroll horizontally to show beginning of the edwin
-		// when focus changes away from the edwin.
-		// 
-      	if ( iIsEditable && ControlIsAnEdwin(iControlType) )
-			{
-			delete iExtension->iIdle;
-			delete iExtension->iIdleData;
-			iExtension->iIdleData = new (ELeave) CIdleCallbackData;
-			iExtension->iIdleData->iCtrl = this;
-			iExtension->iIdleData->iExt = iExtension;
-			iExtension->iIdle = CIdle::NewL(0);
-			iExtension->iIdle->Start(TCallBack(&IdleCallback, iExtension->iIdleData));
-			}	
-_AKNTRACE_FUNC_EXIT;
-}
+void CEikCaptionedControl::ScrollBackEditorL()
+    {
+    _AKNTRACE_FUNC_ENTER;
+    //
+    // For long single-line edwin, scroll horizontally to show beginning
+    // of the edwin when focus changes away from the edwin.
+    // 
+    if ( iIsEditable && ControlIsAnEdwin( iControlType ) )
+        {
+        delete iExtension->iIdle;
+        iExtension->iIdle = NULL;
+        delete iExtension->iIdleData;
+        iExtension->iIdleData = NULL;
+        iExtension->iIdleData = new (ELeave) CIdleCallbackData;
+        iExtension->iIdleData->iCtrl = this;
+        iExtension->iIdleData->iExt = iExtension;
+        iExtension->iIdle = CIdle::NewL( 0 );
+        iExtension->iIdle->Start(
+            TCallBack( &IdleCallback, iExtension->iIdleData ) );
+        }
+    _AKNTRACE_FUNC_EXIT;
+    }
 
 EXPORT_C void CEikCaptionedControl::FocusChanged(TDrawNow aDrawNow)
     {    
@@ -1438,7 +1457,7 @@
             }
         else if( iIsCurrentLine && !iIsEditable ) // Current and in view mode
             {
-            CAknAppUi* aui = static_cast<CAknAppUi*>(CEikonEnv::Static()->AppUi());
+            CAknAppUi* aui = static_cast<CAknAppUi*>(iEikonEnv->AppUi());
             if( aui->IsForeground() )
                 {
                 iExtension->iAnimation->Play();
@@ -1839,14 +1858,14 @@
 //
 TAknsQsnTextColorsIndex CEikCaptionedControl::TextColorIndex() const
     {
-    TAknsQsnTextColorsIndex colorIndex = EAknsCIQsnTextColorsCG8;
+    TAknsQsnTextColorsIndex colorIndex = EAknsCIQsnTextColorsCG6;
 
     // Note control doesn't use highlight text color
     if ( iControlType != EAknCtNote )
         {
         if ( iIsCurrentLine && iDialogPage->HighlightVisible() )
             {
-            colorIndex = EAknsCIQsnTextColorsCG10;
+            colorIndex = EAknsCIQsnTextColorsCG8;
             }
         }
     
@@ -2002,23 +2021,56 @@
                 }
             }
         }
-     if (iIsFormControl)
+
+    TBool edwinControl( ControlIsAnEdwin( iControlType ) );
+    
+     if ( iIsFormControl )
         {
-        if ( PressedDownState()&&
-            aPointerEvent.iType == TPointerEvent::EButton1Down )
+        if ( !PressedDownState() &&
+             aPointerEvent.iType == TPointerEvent::EButton1Down )
             {
             SetPressedDownState( ETrue );
-            DrawDeferred();    
+            DrawDeferred();
             }
-        else if(aPointerEvent.iType == TPointerEvent::EButton1Up)
+        else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
             {
-            _AKNTRACE("TPointerEvent::EButton1Up");
+            _AKNTRACE( "TPointerEvent::EButton1Up" );
             SetPressedDownState( EFalse );
             DrawDeferred();
-            }       
+            }
+        
+        if ( ( aPointerEvent.iType == TPointerEvent::EButton1Down || 
+               aPointerEvent.iType == TPointerEvent::EButton1Up ) &&
+             iIsEditable &&
+             edwinControl &&
+             iExtension &&
+             iExtension->iFeedback &&
+             iControl->Rect().Contains( aPointerEvent.iPosition ) )
+            {
+            CEikEdwin* edwin = static_cast<CEikEdwin*>( iControl );
+            if ( edwin &&
+                 ( edwin->UserFlags() & CEikEdwin::EDisplayOnly ||
+                   edwin->IsReadOnly() ) )
+                {
+                // For edwins in view only mode we must produce the feedback
+                // here, as the edwin itself doesn't.
+                if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+                    {
+                    iExtension->iFeedback->InstantFeedback( iControl,
+                                                            ETouchFeedbackList );
+                    }
+                else
+                    {
+                    iExtension->iFeedback->InstantFeedback( iControl,
+                                                            ETouchFeedbackList,
+                                                            ETouchFeedbackVibra,
+                                                            aPointerEvent );
+                    }
+                }
+            }
         }
     
-    if ( !iIsEditable && (ControlIsAnEdwin(iControlType) || ControlIsAMfne(iControlType))
+    if ( !iIsEditable && ( edwinControl || ControlIsAMfne( iControlType ) )
        &&( iDialogPage && CEikDialogPage::EDouble == iDialogPage->FormLayout() ))
         {
         _AKNTRACE_FUNC_EXIT;
@@ -2027,7 +2079,7 @@
 
     CCoeControl::HandlePointerEventL(aPointerEvent);    
      
-    if ( iExtension )
+    if ( iExtension && iIsFormControl )
         {
         iExtension->SimulatePointerEventToControlL( aPointerEvent );
         }
--- a/uifw/EikStd/dlgsrc/EIKDIALG.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKDIALG.CPP	Tue May 11 16:27:42 2010 +0300
@@ -84,10 +84,10 @@
 //
 TBool CbaEmbeddedInDialog( const TInt& aFlags )
     {
-    return AknLayoutUtils::PenEnabled() && 
-        !( aFlags & EEikDialogFlagFillAppClientRect ) &&
+    return !( aFlags & EEikDialogFlagFillAppClientRect ) &&
         !( aFlags & EEikDialogFlagFillScreen ) &&
-        !( aFlags & EEikDialogFlagVirtualInput );
+        !( aFlags & EEikDialogFlagVirtualInput ) &&
+        !( aFlags & EEikDialogFlagNoEmbeddedSoftkeys );
     }
 
 
@@ -280,7 +280,40 @@
 
     EnableContentObserver( ETrue );
 
+    // Extension member variable iDeleteEmbeddedCba is used to track whether
+    // dialog's implementation of CCoeControl::SizeChanged gets called. If it
+    // isn't then embedded softkeys won't work.
+    CEikDialogExtension* extension = Extension();
+    TBool checkCba = extension && iButtonGroupContainer 
+            && CbaEmbeddedInDialog( iDialogFlags );
+        
+    if ( checkCba )
+        {
+        extension->iDeleteEmbeddedCba = ETrue;
+        }
+
     Layout();
+
+    // At this point CBA's rect should be correctly set. If it isn't, then
+    // assume that dialog didn't properly call CEikDialog::SizeChanged thus 
+    // embedded softkeys won't work.
+    // In that case softkeys are deleted and re-created as a window-owning
+    // component in "legacy" way.    
+    if ( checkCba && extension->iDeleteEmbeddedCba 
+	        && extension->iButtonGroupResourceId != 0 )
+        {
+        delete iButtonGroupContainer;
+        iButtonGroupContainer = NULL;
+        iButtonGroupContainer = CEikButtonGroupContainer::NewL(
+                CEikButtonGroupContainer::ECba,
+                CEikButtonGroupContainer::EHorizontal,
+                iButtonCommandObserver,
+                extension->iButtonGroupResourceId,
+                0 );
+
+        iDialogFlags |= EEikDialogFlagNoEmbeddedSoftkeys; 
+        }
+
     PostLayoutDynInitL();
     _AKNTRACE_FUNC_EXIT;
 	}
@@ -773,6 +806,11 @@
             iButtonCommandObserver, aResourceId, *this, flags );
 
     EnableContentObserver( ETrue );
+    
+    if ( Extension() )
+        {
+        Extension()->iButtonGroupResourceId = aResourceId;
+        }
 	
 	AknGlobalPopupPriorityController::AddSubPopupL(*this, *iButtonGroupContainer->ButtonGroup()->AsControl());
 	AknGlobalPopupPriorityController::AddPopupToControlStackL(*iButtonGroupContainer->ButtonGroup()->AsControl(), ECoeStackPriorityCba, ECoeStackFlagRefusesFocus);
@@ -913,6 +951,7 @@
  */
 EXPORT_C TSize CEikDialog::PreferredSize(const TSize& aMaxSize) const
 	{
+    _AKNTRACE_FUNC_ENTER;
 	if (iDialogFlags&EEikDialogFlagFillScreen)
 		return iEikonEnv->ScreenDevice()->SizeInPixels();
 	else if (iDialogFlags&EEikDialogFlagFillAppClientRect)
@@ -927,20 +966,24 @@
                 CAknView* view = iAvkonViewAppUi->View(uid.iViewUid);
                 if (view)
                     {
+                    _AKNTRACE_FUNC_EXIT;
                     return view->ClientRect().Size();
                     }
                 else
                     {
+                    _AKNTRACE_FUNC_EXIT;
                     return iEikonEnv->EikAppUi()->ClientRect().Size();
                     }
                 }
             else
                 {
+                _AKNTRACE_FUNC_EXIT;
                 return iEikonEnv->EikAppUi()->ClientRect().Size();
                 }
             }
         else
             {
+            _AKNTRACE_FUNC_EXIT;
             return iEikonEnv->EikAppUi()->ClientRect().Size();
             }
 	    }
@@ -991,6 +1034,7 @@
             }
         }
         
+    _AKNTRACE_FUNC_EXIT;
 	return preferredSize;
 	}
 
@@ -1059,7 +1103,12 @@
                 cba->SetRect( TRect(0, 0, 0, 0 ) );
                 }
             }
-		}
+
+        if ( Extension() )
+            {
+            Extension()->iDeleteEmbeddedCba = EFalse;
+            }
+        }
 	if (iTitleBar)
 		{
 		TRect nullRect(0,0,0,0);
@@ -1184,6 +1233,7 @@
  */
 EXPORT_C void CEikDialog::Layout()
 	{
+    _AKNTRACE_FUNC_ENTER;
     TAknWindowLineLayout windowLineLayoutScreen = AknLayoutScalable_Avkon::Screen().LayoutLine();
     TRect rectZero = TRect(0,0,0,0);
     TAknLayoutRect layoutRect;
@@ -1192,7 +1242,10 @@
 
 	TSize maxSize = rectScreen.Size();
 
+    _AKNTRACE( "size = %d x %d", iSize.iWidth, iSize.iHeight );
 	SetSizeAndPosition(PreferredSize( maxSize ));
+    _AKNTRACE( "size = %d x %d", iSize.iWidth, iSize.iHeight );
+    _AKNTRACE_FUNC_EXIT;
 	}
 
 /**
@@ -1948,6 +2001,7 @@
     CAknAppUi* aknAppUi = static_cast<CAknAppUi*>(iEikonEnv->EikAppUi());
     
     if (!(iDialogFlags & EEikDialogFlagDelayEffects)
+        && IsFocusedWindowGroup( this )
         && GfxTransEffect::IsRegistered(this) && IsVisible() && effectButton
 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS        
         && !(iDialogFlags & EEikDialogFlagSleeping)
@@ -1981,6 +2035,9 @@
             GfxTransEffect::NotifyExternalState(ECaptureComponentsAbort, (const TDesC8*)this);
             GfxTransEffect::Abort(this);
             }
+            
+        // Draw again in cast any content change in OkToExitL
+        DrawDeferred();
         
         _AKNTRACE("CEikDialog::TryExitL return with OkToExitL false");
         return;
--- a/uifw/EikStd/dlgsrc/EIKDPAGE.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKDPAGE.CPP	Tue May 11 16:27:42 2010 +0300
@@ -99,15 +99,25 @@
     static CDialogPageExtension* NewL();
     ~CDialogPageExtension();
 
-    void Feedback( CEikDialogPage* aControl, TTouchLogicalFeedback aFeedback ) const;
+    void Feedback( const CEikDialogPage& aControl,
+                   TTouchLogicalFeedback aFeedback ) const;
+
     /**
-     * Produces vibra-only feedback. Event filtering by pointer event is used..
+     * Produces vibra-only feedback.
+     * Event filtering by pointer event is used.
      */
-    void SilentFeedback( CEikDialogPage* aDPage, 
+    void SilentFeedback( const CEikDialogPage& aDPage, 
                          TTouchLogicalFeedback aFeedback, 
                          const TPointerEvent& aPointerEvent ) const;
-    
-    void HandleFormFeedback( CEikDialogPage* aControl, const TPointerEvent& aPointerEvent, TInt aTouchedLineIndex, TInt aCurrentLine );
+
+    /**
+     * Produces feedback in cases where the captioned control itself
+     * doesn't do it.
+     */
+    void HandleFormFeedback( const CEikDialogPage& aDPage,
+                             const TPointerEvent& aPointerEvent,
+                             TInt aTouchedLineIndex,
+                             TInt aCurrentLine );
 
 protected:  
     void ConstructL();
@@ -141,7 +151,6 @@
     TInt iLastTouchedLine;
     TPoint iSynchronizedPosition;
     TBool iScrolling;
-    TBool iScrolled;
     TBool iInitialLayoutDone;
     TBool iSetInitialFocusDone;
     TBool iHandlingResourceChange;
@@ -160,6 +169,8 @@
     TBool iUsesSingleClick;
     // It is used to distinguish if the focus item has changed.
     TBool iFocusItemChanged;
+    // Boolean to check if form was scrolling on button down
+    TBool iWasScrolling;
     };
 
 CDialogPageExtension::CDialogPageExtension()
@@ -201,14 +212,18 @@
     }
 
 void CDialogPageExtension::HandleFormFeedback(
-    CEikDialogPage* aDPage,
+    const CEikDialogPage& aDPage,
     const TPointerEvent& aPointerEvent,
     TInt aTouchedLineIndex,
     TInt aCurrentLine )
     {
+    CEikCaptionedControl* firstLine( aDPage.LineOnPageOrNull( 0 ) );
+    TBool viewMode( !aDPage.IsEditable() );
+    
     // note, that iFormControl is checked in Feedback()
     if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
-        aCurrentLine != aTouchedLineIndex && aDPage->LineOnPageOrNull( 0 ) ) 
+         aCurrentLine != aTouchedLineIndex &&
+         firstLine ) 
         {
         // feedback for edit/view mode form, when non-focused line is clicked
         // feedback for focused item is responsibility of the item
@@ -219,58 +234,67 @@
             }
         iFocusItemChanged = ETrue;
         }
-
-    else if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
-        aTouchedLineIndex == aCurrentLine && aDPage->LineOnPageOrNull( 0 ) )
+    else if ( viewMode && firstLine )
         {
-        // Feedback for view mode form, when focused item is
-        // clicked. Basically same case as for msk simulation later on
-        // the function, but on pointer
-        // down. iExtension->iFocusedClicked is not valid here, since
-        // it can't be known in this phase whether user drags pointer
-        // away.
-        Feedback( aDPage, ETouchFeedbackList );
-        iFocusItemChanged = EFalse;
-        }
-
-    else if ( aPointerEvent.iType == TPointerEvent::EButton1Up &&
-            aDPage->LineOnPageOrNull( 0 ) )
-        {// when focus changed, it should not send feedback on up event.
-        //when up event comes, aTouchedLineIndex always equal to aCurrentLine
-        if ( !iFocusItemChanged )
+        if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
+             aTouchedLineIndex == aCurrentLine )
             {
-            SilentFeedback( aDPage, ETouchFeedbackList, aPointerEvent );
+            // Feedback for view mode form, when focused item is
+            // clicked. Basically same case as for msk simulation later on
+            // the function, but on pointer
+            // down. iExtension->iFocusedClicked is not valid here, since
+            // it can't be known in this phase whether user drags pointer
+            // away.
+            Feedback( aDPage, ETouchFeedbackList );
+            iFocusItemChanged = EFalse;
+            }
+        else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+            {
+            // When focus changed, it should not send feedback on up event.
+            // When up event comes, aTouchedLineIndex always equal to
+            // aCurrentLine.
+            if ( !iFocusItemChanged )
+                {
+                SilentFeedback( aDPage, ETouchFeedbackList, aPointerEvent );
+                }
             }
         }
     }
 
-void CDialogPageExtension::Feedback( CEikDialogPage* aDPage, 
+
+void CDialogPageExtension::Feedback( const CEikDialogPage& aDPage, 
                                      TTouchLogicalFeedback aFeedback ) const
     {
-    if ( aDPage
-        && aDPage->IsForm()
-        && iFeedback
-        && !aDPage->IsDimmed()
-        && aDPage->IsVisible() )
+    if ( iFeedback &&
+         aDPage.IsForm() &&
+         !aDPage.IsDimmed() &&
+         aDPage.IsVisible() && 
+         aDPage.IsEditable() )
         {
         iFeedback->InstantFeedback( aFeedback );
         }
     }
 
-void CDialogPageExtension::SilentFeedback( CEikDialogPage* aDPage, 
-                                           TTouchLogicalFeedback aFeedback, 
-                                           const TPointerEvent& aPointerEvent ) const
+
+void CDialogPageExtension::SilentFeedback(
+    const CEikDialogPage& aDPage,
+    TTouchLogicalFeedback aFeedback,
+    const TPointerEvent& aPointerEvent ) const
     {
-    if ( aDPage
-        && aDPage->IsForm()
-        && iFeedback
-        && !aDPage->IsDimmed()
-        && aDPage->IsVisible() )
+    if ( iFeedback &&
+         aDPage.IsForm() &&
+         !aDPage.IsDimmed() &&
+         aDPage.IsVisible() &&
+         aDPage.IsEditable() )
         {
-        iFeedback->InstantFeedback( aDPage, aFeedback, ETouchFeedbackVibra, aPointerEvent );
+        iFeedback->InstantFeedback( &aDPage,
+                                    aFeedback,
+                                    ETouchFeedbackVibra,
+                                    aPointerEvent );
         }
     }
 
+
 class CAknPaneScroll : public CBase
 {
 public:
@@ -846,12 +870,10 @@
             switch (aFocusNavigationMode)
                 {
                 case ECyclic:
-                    iExtension->iScrolled = ETrue;                    
                     response=HandleCyclicFocusNavigationKeyL(aKeyEvent);
                     break;
                     
                 case ENonCyclic:
-                    iExtension->iScrolled = ETrue;                    
                     response=HandleNonCyclicFocusNavigationKeyL(aKeyEvent);
                     break;
                     
@@ -1069,7 +1091,7 @@
     TInt oldLine = iCurrentLine;
     
     if( aLine != iCurrentLine )
-        (*iLines)[iCurrentLine]->ScrollBackEditor();
+        (*iLines)[iCurrentLine]->ScrollBackEditorL();
     
     ChangeFocusTo( aLine );
     ExposeLine( iCurrentLine, EFalse );
@@ -1882,7 +1904,6 @@
         case EEikScrollPageUp:
         case EEikScrollPageDown:
         case EEikScrollThumbDragVert:
-            iExtension->iScrolled = ETrue;
             iExtension->iScrolling = ETrue;
             iLines->MoveLineToScreen( iCurrentLine, 0, EFalse );
             break;
@@ -2114,7 +2135,7 @@
         CEikEdwin* edwinPtr = STATIC_CAST( CEikEdwin*, theNewLine->iControl );
         if( edwinPtr->Text() )
         	{
-            edwinPtr->SetCursorPosL( edwinPtr->TextLength(), EFalse );       
+            TRAP_IGNORE( edwinPtr->SetCursorPosL( edwinPtr->TextLength(), EFalse ) );       
         	}
     	}
 
@@ -2128,10 +2149,10 @@
         if ( oldLine != -1 )
             {
             iLines->MoveLineToScreen( oldLine, 0, EFalse );
-            RecordLineL( oldLine );
+            TRAP_IGNORE( RecordLineL( oldLine ) );
             }
 
-		RecordLineL( iCurrentLine );
+		TRAP_IGNORE( RecordLineL( iCurrentLine ) );
 		iLines->MoveLineToScreen( iCurrentLine, iPhysics->ViewTopY(), ETrue );
 		}
     _AKNTRACE_FUNC_EXIT;
@@ -2845,10 +2866,13 @@
                 }
             }
         iExtension->iScrolling = EFalse;
-        iExtension->HandleFormFeedback( this, aPointerEvent, touchedLine, iCurrentLine );
+        iExtension->HandleFormFeedback( *this,
+                                        aPointerEvent,
+                                        touchedLine,
+                                        iCurrentLine );
         
-        TBool wasScrolling = ( iPhysics->OngoingPhysicsAction() != 
-            CAknPhysics::EAknPhysicsActionNone );
+        iExtension->iWasScrolling = ( iPhysics->OngoingPhysicsAction() != 
+        CAknPhysics::EAknPhysicsActionNone ); 
         iPhysics->Stop();
         iExtension->iLastTouchedLine = touchedLine;
         iExtension->iDragStartPosition = aPointerEvent.iPosition;
@@ -2861,10 +2885,17 @@
 
             if ( iExtension->iUsesSingleClick )
                 {
-                if ( !wasScrolling )
+                if ( !iExtension->iWasScrolling )
                     {
-                    HighlightVisible( ETrue );
-                    HighlightTimerCallBack( this );
+                    if ( iFormFlags & EEikFormDisableHighlightInViewMode )
+                        {
+                        HighlightVisible( EFalse );
+                        }                
+                    else
+                        {
+                        HighlightVisible( ETrue );
+                        HighlightTimerCallBack( this );
+                        }
                     }
                 }
             else
@@ -2918,7 +2949,6 @@
                     }
 
                 iExtension->iScrolling = ETrue;
-                iExtension->iScrolled = ETrue;
                 iExtension->iLastPointerPos = aPointerEvent.iPosition;
                 RemovePressedDownHighlight();
                 iLines->MoveLineToScreen( iCurrentLine, 0, EFalse );
@@ -2943,8 +2973,11 @@
     
     if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
         {
-    _AKNTRACE( "TPointerEvent::EButton1Up" );
-        iExtension->HandleFormFeedback( this, aPointerEvent, touchedLine, iCurrentLine );
+        _AKNTRACE( "TPointerEvent::EButton1Up" );
+        iExtension->HandleFormFeedback( *this,
+                                        aPointerEvent,
+                                        touchedLine,
+                                        iCurrentLine );
         if ( !IsEditable() && iExtension->iUsesSingleClick && 
              HighlightVisible() )
             {
@@ -2966,7 +2999,7 @@
                 {
                 iExtension->iScrolling = EFalse;
                 
-                if ( iPageObserver && GrabbingComponent() )
+                if ( iPageObserver && GrabbingComponent() && !iExtension->iWasScrolling )
                     {
                     iPageObserver->HandleDialogPageEventL( MEikDialogPageObserver::EDialogPageTapped );
                     }
@@ -2979,12 +3012,14 @@
                     {
                     // feedback is given every time when new item 
                     // appears to the screen -> follows the visual feedback
-                    iExtension->SilentFeedback( this, ETouchFeedbackSensitiveList, aPointerEvent );
+                    iExtension->SilentFeedback( *this,
+                                                ETouchFeedbackSensitiveList,
+                                                aPointerEvent );
+
                     // It might happen that there are no drag events between down and
                     // up if the distance is short enough.
                     iExtension->iHighlightTimer->Cancel();
                     iExtension->iScrolling = ETrue;
-                    iExtension->iScrolled = ETrue;
                     iLines->MoveLineToScreen( iCurrentLine, 0, EFalse );
                     RemovePressedDownHighlight();
                     }
@@ -3020,9 +3055,9 @@
         mskPress = ETrue;
         callDefaultImplementation = EFalse;
         }
-    
     if ( callDefaultImplementation && ( iExtension->iFocusedClicked || 
-            iExtension->iUsesSingleClick ) && newLine )
+            iExtension->iUsesSingleClick ) && newLine && 
+            !iExtension->iWasScrolling )
         {
         if ( newLine->ControlIsAPopfield( controlType ) )
             {
@@ -3048,7 +3083,7 @@
         key.iCode=EKeyOK;
         key.iModifiers=0;
         key.iRepeats = 0;
-        CEikonEnv::Static()->SimulateKeyEventL( key, EEventKey );
+        iEikonEnv->SimulateKeyEventL( key, EEventKey );
         }
     _AKNTRACE_FUNC_EXIT;
     }
@@ -3121,9 +3156,10 @@
         
         if ( LineIsFocusable( touchedLine ) )
             {
-            TRAP_IGNORE( PrepareForFocusTransitionL() );
-            ChangeFocusToAndExposeL( touchedLine );
-            LineChangedL( (*iLines)[touchedLine]->iId );
+            TRAP_IGNORE( PrepareForFocusTransitionL();
+                         ChangeFocusToAndExposeL( touchedLine );
+                         LineChangedL( (*iLines)[touchedLine]->iId );
+                       );
             }
         }
     }
@@ -3187,11 +3223,15 @@
             {
             if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionDragging )
                 {
-                iExtension->Feedback( this, ETouchFeedbackSensitiveList );
+                iExtension->Feedback( *this, ETouchFeedbackSensitiveList );
                 }
-            else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking)
+            else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking )
                 {
-                iExtension->SilentFeedback( this, ETouchFeedbackSensitiveList, TPointerEvent() );
+                iExtension->SilentFeedback( *this, ETouchFeedbackSensitiveList, TPointerEvent() );
+                }
+            else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionBouncing )
+                {
+                iExtension->SilentFeedback( *this, ETouchFeedbackSensitiveList, TPointerEvent() );
                 }
             }
         }
@@ -3201,11 +3241,15 @@
             {
             if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionDragging )
                 {
-                iExtension->Feedback( this, ETouchFeedbackSensitiveList );
+                iExtension->Feedback( *this, ETouchFeedbackSensitiveList );
                 }
-            else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking)
+            else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking )
                 {
-                iExtension->SilentFeedback( this, ETouchFeedbackSensitiveList, TPointerEvent() );
+                iExtension->SilentFeedback( *this, ETouchFeedbackSensitiveList, TPointerEvent() );
+                }
+            else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionBouncing )
+                {
+                iExtension->SilentFeedback( *this, ETouchFeedbackSensitiveList, TPointerEvent() );
                 }
             }
         }
@@ -3375,7 +3419,7 @@
             currentLine->SetPressedDownState( EFalse );
             if ( IsForm() )
                 {
-                RecordLineL( iCurrentLine );
+                TRAP_IGNORE( RecordLineL( iCurrentLine ) );
                 }
             }
         }
@@ -3649,16 +3693,19 @@
         clear = ETrue;
         }
         
-    if ( focusItem || iExtension->iFocusedClicked)
+    if ( focusItem || iExtension->iFocusedClicked )
         {
-        iExtension->HandleFormFeedback( this, aPointerEvent, touchedLineIndex, iCurrentLine );
+        iExtension->HandleFormFeedback( *this,
+                                        aPointerEvent,
+                                        touchedLineIndex,
+                                        iCurrentLine );
         }
                 
     if ( focusItem )
         {
         PrepareForFocusTransitionL();
         
-        (*iLines)[iCurrentLine]->ScrollBackEditor();
+        (*iLines)[iCurrentLine]->ScrollBackEditorL();
         ShowFocus( EFalse, EFalse );
         iCurrentLine = touchedLineIndex;
         ShowFocus( ETrue, EFalse );        
@@ -3677,7 +3724,7 @@
         key.iCode=EKeyOK;
         key.iModifiers=0;
         key.iRepeats = 0;
-        CEikonEnv::Static()->SimulateKeyEventL(key, EEventKey);
+        iEikonEnv->SimulateKeyEventL(key, EEventKey);
         // SimulateKeyEventL has to be last, because it can
         // possibly delete the dialog.. Must not do anything
         // to the dialog after the call.
--- a/uifw/EikStd/dlgsrc/aknrecordinggc.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlgsrc/aknrecordinggc.cpp	Tue May 11 16:27:42 2010 +0300
@@ -189,6 +189,14 @@
                             gc->DrawLine( item->iRect.iTl, item->iRect.iBr );
                             }
                         break;
+                        
+                    case CBufferItem::EUseBrushPattern:
+                        gc->UseBrushPattern( item->iBitmap );
+                        break;
+                        
+                    case CBufferItem::EDiscardBrushPattern:
+                        gc->DiscardBrushPattern();
+                        break;
                     }
                 }
                 
@@ -612,8 +620,15 @@
 // From class CWindowGc
 // ---------------------------------------------------------------------------
 //
-void CAknRecordingGc::UseBrushPattern( const CFbsBitmap* /*aDevice*/ )
+void CAknRecordingGc::UseBrushPattern( const CFbsBitmap* aDevice )
     {
+    CBufferItem* buffer = BufferItem();
+    buffer->iType = CBufferItem::EUseBrushPattern;
+    
+    CFbsBitmap* bitmap = NULL;
+    TRAP_IGNORE( bitmap = new (ELeave) CFbsBitmap() );
+    bitmap->Duplicate(aDevice->Handle());
+    buffer->iBitmap = bitmap;
     }
     
     
@@ -623,6 +638,8 @@
 //
 void CAknRecordingGc::DiscardBrushPattern()
     {
+    CBufferItem* buffer = BufferItem();
+    buffer->iType = CBufferItem::EDiscardBrushPattern;    
     }
     
     
--- a/uifw/eikctl/src/EIKCLB.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/eikctl/src/EIKCLB.CPP	Tue May 11 16:27:42 2010 +0300
@@ -594,17 +594,6 @@
     data->SetItemCellSize( iItemCellSize );
     }
 
-void CColumnListBoxItemDrawer::DrawCurrentItemRect(const TRect& aRect) const
-//
-//    Draw the item background
-//
-    {
-    iGc->SetClippingRect(iViewRect);
-    iGc->SetBrushStyle(CGraphicsContext::ENullBrush);
-    iGc->SetPenColor(iHighlightedBackColor);    // KDefaultLbxHighlightRectColor
-    iGc->DrawRect(aRect);
-    iGc->CancelClippingRect();
-    }
 
 /**
 * Returns a pointer to the column data. Does not imply transfer of ownership.
@@ -656,6 +645,12 @@
     TInt pos = -1;
 
     TBool removeicon = (!aItemIsSelected && !ItemMarkReverse()) || (aItemIsSelected && ItemMarkReverse());
+    
+    if ( Flags() & CListItemDrawer::EMarkingModeEnabled )
+        {
+        removeicon = EFalse;
+        }
+
     if ( Flags() & EDrawMarkSelection && ItemMarkPosition() != -1 && removeicon)
         {
         repl.Set( ItemMarkReplacement() );
@@ -810,8 +805,15 @@
 #define ITEM_EXISTS_ONCE(x) (((x) > -1) && ((x) < iModel->NumberOfItems()))
 
 EXPORT_C void
-CColumnListBoxView::Draw( const TRect* aRect ) const
+CColumnListBoxView::Draw( const TRect* /*aRect*/ ) const
     {
+    // If we get here background is drawn via avkon implementation -> raise the
+    // corresponding flag in item drawer.
+    if ( iItemDrawer )
+        {
+        iItemDrawer->SetFlags( CListItemDrawer::ENativeImplementation );
+        }
+
     if ( RedrawDisabled() || !IsVisible() )
         {
         return;
@@ -831,28 +833,7 @@
         cc = lbi->ColumnData()->SkinBackgroundContext();
         }
 
-    // Draw the whole background at once, this is faster than drawing
-    // it in separate items.
-    if ( listbox && listbox->BackgroundDrawingSuppressed() )
-        {
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-            MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal( iGc );
-            if ( transApi )
-                {
-                transApi->StartDrawing( MAknListBoxTfxInternal::EListView );
-                }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
-        AknsDrawUtils::Background( skin, cc, listbox, *iGc, *aRect );
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-        if ( transApi )
-            {
-            transApi->StopDrawing();
-            }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-        }
-    else if ( !listbox )
+    if ( !listbox )
         {
         iGc->Clear();
         }
@@ -860,6 +841,7 @@
     TInt firstPotentialItemIndex = iTopItemIndex;
     TInt lastPotentialItemIndex =
         iTopItemIndex + NumberOfItemsThatFitInRect( iViewRect ) - 1;
+    TBool backgroundDrawingSuppressed = ( listbox && listbox->BackgroundDrawingSuppressed() );
 
     if ( iModel->NumberOfItems() == 0 )
         {
@@ -872,6 +854,11 @@
             lastPotentialItemIndex = iBottomItemIndex;
             }
 
+        if ( backgroundDrawingSuppressed )
+            {
+            iGc->SetClippingRect( iViewRect );
+            }
+
         ITEM_EXISTS_BEGIN;
         for ( i = firstPotentialItemIndex; i <= lastPotentialItemIndex; i++ )
             {
@@ -884,9 +871,14 @@
                 break;
                 }
             }
+
+        if ( backgroundDrawingSuppressed )
+            {
+            iGc->CancelClippingRect();
+            }
         }
 
-    if ( listbox && !listbox->BackgroundDrawingSuppressed() )
+    if ( !backgroundDrawingSuppressed )
         {
         // Clear the unused portion of the viewing area
         // (this handles drawing the vertical line too :)
--- a/uifw/eikctl/src/EIKCLBD.CPP	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/eikctl/src/EIKCLBD.CPP	Tue May 11 16:27:42 2010 +0300
@@ -32,6 +32,8 @@
 #include <layoutmetadata.cdl.h>
 #include <aknlayoutscalable_avkon.cdl.h>
 #include <aknphysics.h>
+#include <AknIconArray.h>
+#include <avkon.mbg>
 
 
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -116,7 +118,7 @@
     void DeleteAnim();
     void FocusGained();
     void FocusLost();
-    void SkinChanged();
+    void SkinChangedL();
     void SetControl( CCoeControl* aControl );
 
     // Implementation of MCoeForegroundObserver
@@ -141,6 +143,9 @@
                                  CWindowGc& aGc, 
                                  const TRect& aOutRect, 
                                  const TRect& aInnerRect ) const;
+
+    void LoadMarkingIconsL();
+
 public: //for handling column alignment
     struct TColumnExt
         {
@@ -239,6 +244,7 @@
     
     CArrayFix<TColumnExt>* iColumnExtArray; //for column alignment
     TRect iMarginRect;
+    CAknIconArray* iMarkingIconArray;
     };
 
 /**
@@ -306,6 +312,7 @@
 
     
     iKineticScrolling = CAknPhysics::FeatureEnabled();
+    LoadMarkingIconsL();
     _AKNTRACE_FUNC_EXIT;
     }
 
@@ -330,6 +337,13 @@
     delete iColorBmp;
     delete iHiliBmp;
     delete  iColumnExtArray;
+
+    if ( iMarkingIconArray )
+        {
+        iMarkingIconArray->ResetAndDestroy();
+        }
+
+    delete iMarkingIconArray;
     }
 
 MAknsControlContext* CColumnListBoxDataExtension::SkinBackgroundContext() const
@@ -520,17 +534,20 @@
         }
     }
 
+
 // -----------------------------------------------------------------------------
-// CColumnListBoxDataExtension::SkinChanged
+// CColumnListBoxDataExtension::SkinChangedL
 // -----------------------------------------------------------------------------
 //
-void CColumnListBoxDataExtension::SkinChanged()
+void CColumnListBoxDataExtension::SkinChangedL()
     {
     DeleteAnim();
     TryCreateAnimation();
     CreateColorBitmapsL();
+    LoadMarkingIconsL();
     }
 
+
 // -----------------------------------------------------------------------------
 // CColumnListBoxDataExtension::SetControl
 // -----------------------------------------------------------------------------
@@ -1122,19 +1139,63 @@
                                      KAknsIIDQsnFrListCenterPressed );
     }
 
+
+// -----------------------------------------------------------------------------
+// CColumnListBoxDataExtension::LoadMarkingIconsL
+// -----------------------------------------------------------------------------
+//
+void CColumnListBoxDataExtension::LoadMarkingIconsL()
+    {
+    if ( !iMarkingIconArray )
+        {
+        iMarkingIconArray = new ( ELeave ) CAknIconArray( 2 );
+        }
+    else
+        {
+        iMarkingIconArray->ResetAndDestroy();
+        }
+
+    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+    const TDesC& avkonIconFile = AknIconUtils::AvkonIconFileName();
+
+    CGulIcon* icon = AknsUtils::CreateGulIconL( skin, 
+            KAknsIIDQgnPropCheckboxOn, 
+            avkonIconFile, 
+            EMbmAvkonQgn_prop_checkbox_on, 
+            EMbmAvkonQgn_prop_checkbox_on_mask );
+    
+    CleanupStack::PushL( icon );
+    iMarkingIconArray->AppendL( icon );
+    CleanupStack::Pop( icon );
+
+    icon = AknsUtils::CreateGulIconL( skin, 
+            KAknsIIDQgnPropCheckboxOff, 
+            avkonIconFile, 
+            EMbmAvkonQgn_prop_checkbox_off, 
+            EMbmAvkonQgn_prop_checkbox_off_mask );
+
+    CleanupStack::PushL( icon );
+    iMarkingIconArray->AppendL( icon );
+    CleanupStack::Pop( icon );
+    }
+
+
 EXPORT_C CCoeControl *CColumnListBoxData::Control() const 
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     return iExtension->iControl;
     }
 
 EXPORT_C void CColumnListBoxData::SetControl(CCoeControl *aControl)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     iExtension->SetControl( aControl );
     }
 
 
 EXPORT_C MAknsControlContext* CColumnListBoxData::SkinBackgroundContext() const
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     if (iExtension->iSkinEnabled)
         {
         return iExtension->iSkinControlContext;
@@ -1145,12 +1206,14 @@
 
 void CColumnListBoxData::SetSkinBackgroundContext(CAknsListBoxBackgroundControlContext *aContext)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     delete iExtension->iSkinControlContext;
     iExtension->iSkinControlContext = aContext;
     }
 
 void CColumnListBoxData::CreatePictographInterfaceL()
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     if ( !iExtension->iPictoInterface )
         {
         iExtension->iPictoInterface = CAknPictographInterface::NewL(
@@ -1160,6 +1223,7 @@
 
 EXPORT_C void CColumnListBoxData::SetSkinHighlightFrame(const TAknsItemID *aFrameId, const TAknsItemID *aFrameCenterId)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     iExtension->iSkinHighlightFrameId = aFrameId;
     iExtension->iSkinHighlightFrameCenterId = aFrameCenterId;
@@ -1167,12 +1231,14 @@
 
 EXPORT_C void CColumnListBoxData::SetSkinEnabledL(TBool aEnabled)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     CListBoxData::SetSkinEnabledL(aEnabled);
     iExtension->iSkinEnabled = aEnabled;
     }
 
 EXPORT_C void CColumnListBoxData::SetSkinStyle(const TAknsItemID *aId, const TRect &aTileRect)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     if (iExtension->iSkinControlContext)
         {
         iExtension->iSkinControlContext->SetTiledBitmap(*aId);
@@ -1182,6 +1248,7 @@
 
 EXPORT_C void CColumnListBoxData::SetListEndSkinStyle(const TAknsItemID *aId, const TRect &aTileRect)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     if (iExtension->iSkinControlContext)
         {
         iExtension->iSkinControlContext->SetBottomBitmap(*aId);
@@ -1191,6 +1258,7 @@
 
 void CColumnListBoxData::CreateMarqueeControlL()
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     if ( !iExtension->iMarquee )
         {
@@ -1210,6 +1278,7 @@
 
 void CColumnListBoxData::ResetMarquee()
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     if (iExtension->iMarquee)
         {
@@ -1223,11 +1292,13 @@
 
 TInt CColumnListBoxData::CurrentMarqueeItemIndex()
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     return iExtension->iCurrentItem;
     }
 
 void CColumnListBoxData::SetCurrentMarqueeItemIndex(TInt aIndex)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     iExtension->iCurrentItem = aIndex;
     }
 
@@ -1236,6 +1307,7 @@
 //
 EXPORT_C void CColumnListBoxData::EnableMarqueeL(TBool aEnable)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     // CreateMarqueeControlL does nothing if marquee already exists,
     // so let's just call it just in case.
@@ -1246,15 +1318,13 @@
 
 EXPORT_C void CColumnListBoxData::SetSeparatorLinePosition(TAknSeparatorLinePosition aPosition)
     {
-    if (iExtension)
-        iExtension->iSeparatorLinePosition = aPosition;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    iExtension->iSeparatorLinePosition = aPosition;
     }
 EXPORT_C TAknSeparatorLinePosition CColumnListBoxData::SeparatorLinePosition() const
     {
-    if (iExtension)
-        return iExtension->iSeparatorLinePosition;
-    else
-        return ENoLine;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    return iExtension->iSeparatorLinePosition;
     }
 EXPORT_C CAknLayoutData *CColumnListBoxData::LayoutData() const
     {
@@ -1311,12 +1381,12 @@
 //    D'tor
 //
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     delete iColumnArray;
     if (IconArray())
         {
         IconArray()->ResetAndDestroy();
-        if (iExtension)
-            delete iExtension->iIconArray;
+        delete iExtension->iIconArray;
         }
     delete iExtension;
     }
@@ -1393,10 +1463,11 @@
 //    Set a columns width
 //
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     TInt index;
     FindColumnIndexOrAddL(index,aColumn);
     At(index).iWidth=aWidth;
-    if ( iExtension && iExtension->iUseLayoutData )
+    if ( iExtension->iUseLayoutData )
         {
         iExtension->iUseLayoutData = EFalse;
         CListBoxView* view = static_cast<CEikListBox*>( iExtension->iControl )->View();
@@ -1467,6 +1538,7 @@
 //  Set a columns baseline position
 //
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     TInt index;
     FindColumnIndexOrAddL(index,aColumn);
@@ -1474,7 +1546,7 @@
     
     // can not be nicely supported by new drawing system
     // --> revert to Symbian style drawing
-    if ( iExtension && iExtension->iUseLayoutData )
+    if ( iExtension->iUseLayoutData )
         {
         iExtension->iUseLayoutData = EFalse;
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -1509,6 +1581,7 @@
 //  Set a columns vertical cap
 //
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     TInt index;
     FindColumnIndexOrAddL(index,aColumn);
@@ -1516,7 +1589,7 @@
 
     // can not be nicely supported by new drawing system
     // --> revert to Symbian style drawing
-    if ( iExtension && iExtension->iUseLayoutData )
+    if ( iExtension->iUseLayoutData )
         {
         iExtension->iUseLayoutData = EFalse;
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -1628,6 +1701,7 @@
 //    Set a columns alignment
 //
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     TInt index;
     FindColumnIndexOrAddL(index,aColumn);
     At(index).iAlign=aAlign;
@@ -1728,10 +1802,8 @@
 //    Return the list of icons
 //
     {
-    if (iExtension)
-        return iExtension->iIconArray;
-    else
-        return 0;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    return iExtension->iIconArray;
     }
 
 EXPORT_C void CColumnListBoxData::SetIconArray(CArrayPtr<CGulIcon>* aArray)
@@ -1739,14 +1811,9 @@
 //    Passes ownership of the icon list aArray (assumes any previous list has been deleted by the caller)
 //
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
-    if (iExtension)
-        iExtension->iIconArray=aArray;
-    else
-        {
-        aArray->ResetAndDestroy();
-        delete aArray;
-        }    
+    iExtension->iIconArray=aArray; 
     }
 
 EXPORT_C CFont* CColumnListBoxData::Font(const TListItemProperties& /*aItemProperties*/, TInt aColumn) const
@@ -1778,6 +1845,7 @@
 
 void CColumnListBoxData::DrawHighLight( CWindowGc& aGc, const TRect& aRect, TBool aHighlight, MAknsSkinInstance* aSkin ) const
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     // SERIES60 Highlight drawing.
     if( aHighlight )
         {
@@ -1943,6 +2011,7 @@
                                      TBool aHighlight,
                                      const TColors& aColors ) const
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );    
     
     __ASSERT_DEBUG( iExtension->iControl, Panic( EEikPanicNullPointer ));
@@ -1960,6 +2029,22 @@
     TPtrC tempText;
 
     TRgb aTextColor = aHighlight ? aColors.iHighlightedText : aColors.iText;
+    
+    TBool markingMode = EFalse;
+    TRect itemRect( aRect );
+    
+    if ( listbox->View() && listbox->View()->ItemDrawer() )
+        {
+        if ( listbox->View()->ItemDrawer()->Flags() 
+                & CListItemDrawer::EMarkingModeEnabled
+                && iExtension->iMarkingIconArray
+                &&  iExtension->iMarkingIconArray->Count() == 2 )
+            {
+            markingMode = ETrue;
+            itemRect.iTl.iX += 
+                    AknLayoutScalable_Avkon::list_single_graphic_pane_t1( 0 ).LayoutLine().il;
+            }
+        }
 
     MAknsSkinInstance *skin = AknsUtils::SkinInstance();
     MAknsControlContext *cc = AknsDrawUtils::ControlContext( Control() );
@@ -1975,9 +2060,8 @@
     
     if ( iExtension->iSubCellsMightIntersect )
         {
-        CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, aRect );
+        CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, itemRect );
         }
-
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
     MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc );
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
@@ -2017,11 +2101,43 @@
         }
     DrawHighLight( aGc, aRect, aHighlight, skin );
     
+    if ( markingMode && !aItemProperties.IsSelectionHidden() )
+        {
+        TAknLayoutRect layoutRect;
+        layoutRect.LayoutRect( aRect, 
+                AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) );
+        
+        aGc.SetPenColor( aColors.iText );
+        aGc.SetPenStyle( CGraphicsContext::ESolidPen );
+
+        CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked
+
+        if ( listbox->View()->ItemIsSelected( iExtension->iCurrentRow ) )
+            {
+            icon = (*iExtension->iMarkingIconArray)[0];
+            }
+        
+        CFbsBitmap* bitmap = icon->Bitmap();
+
+        if ( bitmap )
+            {
+            TSize size( bitmap->SizeInPixels() ); // set size if not already
+            TSize targetSize( layoutRect.Rect().Size() );
+            
+            if ( size.iWidth != targetSize.iWidth && size.iHeight != targetSize.iHeight )
+                {
+                AknIconUtils::SetSize( bitmap, targetSize,
+                        EAspectRatioPreservedAndUnusedSpaceRemoved ); 
+                }
+
+            aGc.BitBltMasked( layoutRect.Rect().iTl, bitmap, TRect( layoutRect.Rect().Size() ), icon->Mask(), EFalse );
+            }
+        
+        }
+    
     // The column draw loop
     column = 0;
     TInt subCellIndex = 0;
-
-    if ( !iExtension ) { return; }
     
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST   
     if ( transApi )
@@ -2129,7 +2245,7 @@
                 }
             
             TAknLayoutText textLayout;
-            textLayout.LayoutText( aRect, textLineLayout, usedFont );
+            textLayout.LayoutText( itemRect, textLineLayout, usedFont );
             // *2 == leave some room for marquee
             const TInt maxlen( KMaxColumnDataLength * 2 ); 
             TBuf<maxlen> convBuf = text.Left(maxlen);
@@ -2176,7 +2292,7 @@
                 {
                 iExtension->iMarquee->UseLogicalToVisualConversion( bidiConv );
                 
-                if ( iExtension->iMarquee->DrawText( aGc, aRect, textLineLayout, convBuf, usedFont, textColor ) )
+                if ( iExtension->iMarquee->DrawText( aGc, itemRect, textLineLayout, convBuf, usedFont, textColor ) )
                     {
                     // all the loops have been executed
                     textLayout.DrawText( aGc, convBuf, bidiConv, textColor );
@@ -2266,7 +2382,7 @@
             TAknWindowLineLayout graphicLayout = iExtension->AtSL(subCellIndex).iGraphicLayout;
             TAknLayoutRect graphicRect; 
             
-            graphicRect.LayoutRect(aRect,graphicLayout);
+            graphicRect.LayoutRect( itemRect,graphicLayout );
             TSize graphicSize( graphicRect.Rect().Size() );
             
             if ( index>=0 && IconArray() )
@@ -2309,6 +2425,7 @@
                                TBool aHighlight,
                                const TColors& aColors ) const
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); 
 
     if ( aHighlight )
@@ -2342,11 +2459,28 @@
         return;
         }
 
+    CEikListBox* listbox = static_cast<CEikListBox*>( iExtension->iControl );
+    TBool markingMode = EFalse;
+    TRect itemRect( aRect );
+    
+    if ( listbox->View() && listbox->View()->ItemDrawer() )
+        {
+        if ( listbox->View()->ItemDrawer()->Flags() 
+                & CListItemDrawer::EMarkingModeEnabled &&
+             iExtension->iMarkingIconArray && 
+             iExtension->iMarkingIconArray->Count() == 2 )
+            {
+            markingMode = ETrue;
+            itemRect.iTl.iX += 
+                AknLayoutScalable_Avkon::list_single_graphic_pane_t1( 0 ).LayoutLine().il;
+            }
+        }
+    
     TInt extraVerticalSpace=(aRect.Height()-font->HeightInPixels());
     TInt baseLineOffset=extraVerticalSpace/2+font->AscentInPixels();
-    TRect textRect( aRect );
+    TRect textRect( itemRect );
     TRect textMRect; // textrect with margins.
-    textRect.iBr.iX=aRect.iTl.iX;
+    textRect.iBr.iX = itemRect.iTl.iX;
     TInt column=0;
     TPtrC text;
 
@@ -2356,11 +2490,11 @@
     // be too difficult to do without - and this is cleaner solution.
     
     // pass 1, figures out x-coordinates for columns.
-    TInt x = aRect.iTl.iX;
+    TInt x = itemRect.iTl.iX;
     TBool mirror = AknLayoutUtils::LayoutMirrored();
     if (mirror)
         {
-        x = aRect.iBr.iX;
+        x = itemRect.iBr.iX;
         }
     TInt maxx = x;
     while(column <= lastColumn)
@@ -2433,13 +2567,6 @@
         cc = SkinBackgroundContext();
         }
 
-    // aRect is list item's rect, width of which is smaller than width of the list
-    // with a scroll bar. List needs to draw under scroll bar anyway, so we need to
-    // modify given rect here.
-    TRect r(aRect);
-    
-    CEikListBox* listbox = static_cast<CEikListBox*>( iExtension->iControl );
-
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
 
     MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc );
@@ -2475,9 +2602,7 @@
 #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 );
         }
@@ -2494,6 +2619,47 @@
         }
 #endif // RD_UI_TRANSITION_EFFECTS_LIST
 
+    if ( markingMode && !aItemProperties.IsSelectionHidden() )
+        {
+        TAknLayoutRect layoutRect;
+        layoutRect.LayoutRect(
+            aRect, 
+            AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) );
+        
+        aGc.SetPenColor( aColors.iText );
+        aGc.SetPenStyle( CGraphicsContext::ESolidPen );
+
+        CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked
+
+        if ( listbox->View()->ItemIsSelected( iExtension->iCurrentRow ) )
+            {
+            icon = (*iExtension->iMarkingIconArray)[0];
+            }
+        
+        CFbsBitmap* bitmap = icon->Bitmap();
+
+        if ( bitmap )
+            {
+            TSize size( bitmap->SizeInPixels() ); // set size if not already
+            TSize targetSize( layoutRect.Rect().Size() );
+            
+            if ( size.iWidth != targetSize.iWidth &&
+                 size.iHeight != targetSize.iHeight )
+                {
+                AknIconUtils::SetSize(
+                    bitmap,
+                    targetSize,
+                    EAspectRatioPreservedAndUnusedSpaceRemoved ); 
+                }
+
+            aGc.BitBltMasked( layoutRect.Rect().iTl,
+                              bitmap,
+                              TRect( layoutRect.Rect().Size() ),
+                              icon->Mask(),
+                              EFalse );
+            }
+        }
+    
     // The column draw loop
     column = 0;
     FOREVER
@@ -2547,7 +2713,7 @@
                     aGc.SetBrushColor(aColors.iHighlightedBack);    
                     }
 
-                if (AknsUtils::AvkonSkinEnabled() && iExtension)
+                if ( AknsUtils::AvkonSkinEnabled() )
                     {
                     if (iExtension->iTextColor != NULL)
                         {
@@ -2680,8 +2846,7 @@
                         {
                         CGulIcon* icon=(*IconArray())[index];
                         
-                        if ( iExtension
-                             && iExtension->iSubCellIconSize[column] != TSize(0,0) )
+                        if ( iExtension->iSubCellIconSize[column] != TSize(0,0) )
                             {
                             TSize wanted( iExtension->iSubCellIconSize[column] );
                             TSize got( icon->Bitmap()->SizeInPixels() );
@@ -2880,8 +3045,8 @@
                                                        TInt aColumn,
                                                        const CFont* aFont)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
-    if (!iExtension) return;
     TInt index = 0;
     iExtension->FindRowAndColumnIndexOrAddL(index,aRow,aColumn);
     iExtension->At(index).iFont=aFont;
@@ -2890,7 +3055,7 @@
 EXPORT_C const CFont* 
 CColumnListBoxData::RowAndColumnFont(TInt aRow,TInt aColumn) const
     {
-    if (!iExtension) return 0;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     TInt index = 0;
     if (iExtension->FindRowAndColumnIndex(index,aRow,aColumn)!=0)
         return 0;
@@ -2899,6 +3064,7 @@
 
 void CColumnListBoxData::SetCurrentItemIndex(TInt aIndex)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     if( iExtension->iCurrentRow != aIndex )
         {
@@ -2925,6 +3091,7 @@
     const TBool aHighlight,
     const TBool aIsTextClipped ) const
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     TBool marqueeDisabled =
         static_cast<CEikListBox*>(
@@ -2952,6 +3119,7 @@
 
 EXPORT_C void CColumnListBoxData::SetMarqueeParams(const TInt aLoops, const TInt aScrollAmount, const TInt aScrollDelay)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     if ( iExtension->iMarquee )
         {
@@ -2970,6 +3138,7 @@
 EXPORT_C void CColumnListBoxData::SetMarqueeParams(const TInt aLoops, const TInt aScrollAmount, 
                                                    const TInt aScrollDelay, const TInt aInterval)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     if ( iExtension->iMarquee )
         {
@@ -2983,8 +3152,9 @@
 EXPORT_C
 void CColumnListBoxData::SetSubCellIconSize(TInt aIndex, TSize aSize)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
-    if (iExtension && aIndex < 6 && aIndex >= 0)
+    if ( aIndex < 6 && aIndex >= 0 )
         {
         iExtension->iSubCellIconSize[aIndex] = aSize;
         }
@@ -2992,7 +3162,8 @@
 
 TSize CColumnListBoxData::GetSubCellIconSize(TInt aIndex)
     {
-    if (iExtension && aIndex < 6 && aIndex >= 0)
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    if ( aIndex < 6 && aIndex >= 0 )
         {
         return iExtension->iSubCellIconSize[aIndex];
         }
@@ -3005,9 +3176,8 @@
 //
 EXPORT_C const CAknsEffectAnim* CColumnListBoxData::HighlightAnim() const
     {
-    if( iExtension )
-        return iExtension->iAnimation;
-    return NULL;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    return iExtension->iAnimation;
     }
 
 // -----------------------------------------------------------------------------
@@ -3016,10 +3186,7 @@
 //
 EXPORT_C void CColumnListBoxData::AboutToDrawHighlightAnim() const
     {
-    if( !iExtension )
-        {
-        return;
-        }
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     if( !iExtension->iAnimation || !iExtension->iControl )
         {
         return;
@@ -3048,11 +3215,9 @@
 EXPORT_C void CColumnListBoxData::SetHighlightAnimBackgroundDrawer(
     MColumnListBoxAnimBackgroundDrawer* aDrawer )
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
-    if( iExtension )
-        {
-        iExtension->iHighlightBgDrawer = aDrawer;
-        }
+    iExtension->iHighlightBgDrawer = aDrawer;
     }
 
 // -----------------------------------------------------------------------------
@@ -3061,15 +3226,14 @@
 //
 EXPORT_C void CColumnListBoxData::SetItemCellSize( const TSize& aSizeInPixels )
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
-    if( iExtension )
+ 
+    if( iExtension->iAnimSize != aSizeInPixels )
         {
-        if( iExtension->iAnimSize != aSizeInPixels )
-            {
-            iExtension->Play();
-            }
-        iExtension->iAnimSize = aSizeInPixels;
+        iExtension->Play();
         }
+    iExtension->iAnimSize = aSizeInPixels;
     }
 
 // -----------------------------------------------------------------------------
@@ -3078,8 +3242,7 @@
 //
 EXPORT_C TBool CColumnListBoxData::HasHighlightAnim() const
     {
-    if( !iExtension )
-        return EFalse;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     if( !iExtension->iAnimation )
         return EFalse;
     return ETrue;
@@ -3092,9 +3255,7 @@
 EXPORT_C TBool CColumnListBoxData::DrawHighlightAnim(
         CBitmapContext& aGc, const TRect& aRect ) const
     {
-    if( !iExtension )
-        return EFalse;
-
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     if( !iExtension->iAnimation )
         return EFalse;
 
@@ -3107,6 +3268,7 @@
 //
 void CColumnListBoxData::FocusGained()
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     iExtension->FocusGained();
     }
 
@@ -3116,17 +3278,19 @@
 //
 void CColumnListBoxData::FocusLost()
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     iExtension->FocusLost();
     }
 
 void CColumnListBoxData::HandleResourceChange( TInt aType )
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s] aType = %d", "CColumnListBoxData", __FUNCTION__, aType  );
     // Animation is skin dependent, whenever skin changes animation changes
     // too.
     if( KAknsMessageSkinChange == aType )
         {
-        iExtension->SkinChanged();
+        TRAP_IGNORE( iExtension->SkinChangedL() );
         }
     else if(aType == KEikDynamicLayoutVariantSwitch)
         {
@@ -3178,34 +3342,28 @@
 
 void CColumnListBoxData::SetESSTextColor(TRgb aTextColor)
     {
-    if (iExtension)
-        iExtension->iTextColor = aTextColor;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    iExtension->iTextColor = aTextColor;
     }
 
 void CColumnListBoxData::SetESSHighlightedTextColor(TRgb aHighlightedTextColor)
     {
-    if (iExtension)
-        iExtension->iHighlightedTextColor = aHighlightedTextColor;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    iExtension->iHighlightedTextColor = aHighlightedTextColor;
     }
 
 EXPORT_C void CColumnListBoxData::SetColumnUnderlined( TBitFlags32 aUnderlinedColumns )
     {
-    if ( iExtension )
-        {
-        iExtension->iUnderlineFlagSet = ETrue;
-        iExtension->iUnderlineFlags   = aUnderlinedColumns;
-        }
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    iExtension->iUnderlineFlagSet = ETrue;
+    iExtension->iUnderlineFlags   = aUnderlinedColumns;
     }
 
 void CColumnListBoxData::SetUnderlineStyle( TListItemProperties aProperties,
                                             CWindowGc& aGc,
                                             TInt aColumn ) const
     {
-    if ( !iExtension )
-        {
-        return;
-        }
-
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     if ( !iExtension->iUnderlineFlagSet )
         {
         // underlining is already either on or off and
@@ -3232,13 +3390,9 @@
 //
 EXPORT_C void CColumnListBoxData::ResetSLSubCellArray()
     {
-    if ( !iExtension )
-        {
-        return;
-        }
-
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     iExtension->iMarginRect = TRect::EUninitialized;
-    if ( iExtension && iExtension->iUseLayoutData )
+    if ( iExtension->iUseLayoutData )
         {
         iExtension->iUseLayoutData = EFalse;
 #ifdef RD_UI_TRANSITION_EFFECTS_LIST 
@@ -3266,8 +3420,8 @@
 EXPORT_C void CColumnListBoxData::SetGraphicSubCellL(TInt aSubCell,
                                                    const TAknWindowLineLayout &aGraphicLayout)       
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
-    if (!iExtension) return;
     TInt index = 0;
     iExtension->FindSLSubCellIndexOrAddL(index,aSubCell);
     iExtension->AtSL(index).iTextLayout=NULL;
@@ -3315,8 +3469,8 @@
 EXPORT_C void CColumnListBoxData::SetTextSubCellL(TInt aSubCell,
                                                 const TAknTextLineLayout &aTextLayout)
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
-    if (!iExtension) return;
     TInt index = 0;
     iExtension->FindSLSubCellIndexOrAddL(index,aSubCell);
     iExtension->AtSL(index).iTextLayout=aTextLayout;
@@ -3365,6 +3519,7 @@
                                                          const TAknTextLineLayout &aTextLayout,
                                                          TInt aAffectedSubCell)  
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
     // iConditionValue of affected subcell (=text subcell, which has different layouts)
     // contains index of graphical subcell, which existence should be checked first.
@@ -3374,7 +3529,6 @@
 
     // for compabitility - needed at least for text wrapping
     SetOptionalColumnL( aSubCell, ETrue );
-    if (!iExtension) return;
 
     TInt i = 0x01;
     i = i << aSubCell;
@@ -3501,10 +3655,8 @@
 //
 TBool CColumnListBoxData::UsesScalableLayoutData() const
     {
-    if (iExtension)
-        return iExtension->iUseLayoutData;
-
-    return EFalse;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    return iExtension->iUseLayoutData;
     }
 
 // -----------------------------------------------------------------------------
@@ -3513,11 +3665,7 @@
 //
 void CColumnListBoxData::EnableStretching( const TBool aEnabled )
     {
-    if ( !iExtension )
-        {
-        return;
-        }
-        
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     iExtension->iStretchingEnabled = aEnabled;        
     }
 
@@ -3528,11 +3676,7 @@
 //
 EXPORT_C TBool CColumnListBoxData::StretchingEnabled() const
     {
-    if ( !iExtension )
-        {
-        return EFalse;
-        }
-        
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );      
     return iExtension->iStretchingEnabled;        
     }
 
@@ -3558,6 +3702,7 @@
     const TDesC& aText, 
     const TRect& aItemRect ) const
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
 
     TInt column = 0;
@@ -3672,6 +3817,7 @@
 //
 EXPORT_C void CColumnListBoxData::SubCellsMightIntersect( const TBool aMightIntersect )
     {
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
     iExtension->iSubCellsMightIntersect = aMightIntersect;
     }
     
@@ -3772,16 +3918,14 @@
 
 EXPORT_C TUint32 CColumnListBoxData::CurrentItemTextWasClipped() const
     {
-    return iExtension ? iExtension->iClippedColumns : 0;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    return iExtension->iClippedColumns;
     }
 
 TBool CColumnListBoxData::KineticScrollingEnabled() const
     {
-    if ( iExtension )
-        {
-        return iExtension->iKineticScrolling;       
-        }
-    return EFalse;
+	__ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+    return iExtension->iKineticScrolling;       
     }
 
 
--- a/uifw/ganes/group/bld.inf	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/group/bld.inf	Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,6 @@
 OPTION HEADERFILE ganes.mbg
 OPTION SOURCES\
  -c32,8 qgn_prop_sub_marked\
- -c32,8 qgn_prop_file_video\
  -c32,8 qgn_prop_fmgr_file_video\
  -c32,8 qgn_prop_drm_rights_valid_super\
  -c32,8 qgn_prop_drm_rights_exp_super\
@@ -47,7 +46,8 @@
  -c32,8 qgn_graf_mup_adtl_reorder_up\
  -c32,8 qgn_graf_mup_adtl_reorder_updown\
  -c32,8 qgn_prop_checkbox_on\
- -c32,8 qgn_indi_button_exit_fs
+ -c32,8 qgn_indi_button_exit_fs\
+ -c32,8 qgn_indi_media_thumbnail
 END
 #endif
 
--- a/uifw/ganes/src/HgIndicatorManager.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgIndicatorManager.cpp	Tue May 11 16:27:42 2010 +0300
@@ -69,116 +69,116 @@
     InitIconL( iBrokenPlaylistIcon, 
             EMbmGanesQgn_graf_mup_lst_brokenplayl, 
             EMbmGanesQgn_graf_mup_lst_brokenplayl_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // Broken track icon
     InitIconL( iBrokenTrackIcon, 
             EMbmGanesQgn_graf_mup_lst_brokentrack, 
             EMbmGanesQgn_graf_mup_lst_brokentrack_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // Corrupted track icon
     InitIconL( iCorruptedTrackIcon, 
             EMbmGanesQgn_graf_mup_lst_corrupttrack, 
             EMbmGanesQgn_graf_mup_lst_corrupttrack_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // New podcast icon 
     InitIconL( iNewPodcastIcon, 
             EMbmGanesQgn_graf_mup_lst_pdc_new, 
             EMbmGanesQgn_graf_mup_lst_pdc_new_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // Played podcast icon 
     InitIconL( iPlayedPodcastIcon, 
             EMbmGanesQgn_graf_mup_lst_pdc_partplay, 
             EMbmGanesQgn_graf_mup_lst_pdc_partplay_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
 
     // Completely played podcast icon 
     InitIconL( iCompletelyPlayedPodcastIcon, 
             EMbmGanesQgn_graf_mup_lst_pdc_compplay, 
             EMbmGanesQgn_graf_mup_lst_pdc_compplay_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
+
+    // Video icon
+    InitIconL( iVideoIcon,
+            EMbmGanesQgn_indi_media_thumbnail, 
+            EMbmGanesQgn_indi_media_thumbnail_mask, 
+            aIndicatorSize );
 
     // Skinned icons
     // Mark icon
     InitIconL( iMarkIcon, KAknsIIDQgnPropSubMarked, 
             EMbmGanesQgn_prop_sub_marked, 
             EMbmGanesQgn_prop_sub_marked_mask, 
-            aIndicatorSize);
-    
-    // Video icon
-    InitIconL( iVideoIcon, KAknsIIDQgnPropFileVideo,
-            EMbmGanesQgn_prop_file_video, 
-            EMbmGanesQgn_prop_file_video_mask, 
-            aIndicatorSize);
-    
+            aIndicatorSize );
+
     // DRM valid icon
     InitIconL( iDrmIcon, KAknsIIDQgnPropDrmRightsValidSuper, 
             EMbmGanesQgn_prop_drm_rights_valid_super, 
             EMbmGanesQgn_prop_drm_rights_valid_super_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // DRM expired icon
     InitIconL( iDrmExpIcon, KAknsIIDQgnPropDrmRightsExpSuper, 
             EMbmGanesQgn_prop_drm_rights_exp_super, 
             EMbmGanesQgn_prop_drm_rights_exp_super_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // Playback icon
     InitIconL( iPlaybackIndicatorIcon, KAknsIIDQgnIndiMupPlay, 
             EMbmGanesQgn_indi_mup_play, 
             EMbmGanesQgn_indi_mup_play_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // Pause icon
     InitIconL( iPauseIndicatorIcon, KAknsIIDQgnIndiMupPause, 
             EMbmGanesQgn_indi_mup_pause, 
             EMbmGanesQgn_indi_mup_pause_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // New Video icon
     InitIconL( iNewVideoIcon, KAknsIIDQgnPropFmgrFileVideo, 
             EMbmGanesQgn_prop_fmgr_file_video, 
             EMbmGanesQgn_prop_fmgr_file_video_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // Phone memory icon
     InitIconL( iPhoneStorageIcon, KAknsIIDQgnPropPhoneMemc, 
             EMbmGanesQgn_prop_phone_memc, 
             EMbmGanesQgn_prop_phone_memc_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
 
     // MMC memory icon
     InitIconL( iMmcIcon, KAknsIIDQgnPropMmcMemc, 
             EMbmGanesQgn_prop_mmc_memc, 
             EMbmGanesQgn_prop_mmc_memc_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // Mass memory icon
     InitIconL( iMassStorageIcon, KAknsIIDQgnPropFmgrMsSmall, 
             EMbmGanesQgn_prop_fmgr_ms_small, 
             EMbmGanesQgn_prop_fmgr_ms_small_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
 
     // Move up icon
     InitIconL( iMoveUpIcon, KAknsIIDQgnGrafMupAdtlReorderUp, 
             EMbmGanesQgn_graf_mup_adtl_reorder_up, 
             EMbmGanesQgn_graf_mup_adtl_reorder_up_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // Move down icon
     InitIconL( iMoveDownIcon, KAknsIIDQgnGrafMupAdtlReorderDown, 
             EMbmGanesQgn_graf_mup_adtl_reorder_down, 
             EMbmGanesQgn_graf_mup_adtl_reorder_down_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     
     // Move updown icon
     InitIconL( iMoveUpDownIcon, KAknsIIDQgnGrafMupAdtlReorderUpdown, 
             EMbmGanesQgn_graf_mup_adtl_reorder_updown, 
             EMbmGanesQgn_graf_mup_adtl_reorder_updown_mask, 
-            aIndicatorSize);
+            aIndicatorSize );
     }
 
 void CHgIndicatorManager::DrawIndicators( 
--- a/uifw/ganes/src/HgScroller.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgScroller.cpp	Tue May 11 16:27:42 2010 +0300
@@ -738,6 +738,7 @@
 //
 void CHgScroller::HandleDragEventL( const TPointerEvent& aEvent )
     {
+    TBool prevPanning = iPanning;
     if(!iPanning)
         {
         TInt delta = 0;
@@ -754,6 +755,9 @@
         iPanning = delta >= iPhysics->DragThreshold();
         }
 
+    if( prevPanning != iPanning )
+        DrawDeferred(); // to clear highlight
+    
     if(iPanning)
         {
         TPoint delta = iPrev - aEvent.iPosition;
--- a/uifw/ganes/src/HgVgHelper.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgVgHelper.cpp	Tue May 11 16:27:42 2010 +0300
@@ -39,36 +39,51 @@
 namespace HgVgHelper
     {
 
+// ---------------------------------------------------------------------------
+// CreateNonMaskedVgImageL()
+// ---------------------------------------------------------------------------
+//     
 static VGImage CreateNonMaskedVgImageL( const CFbsBitmap& aBitmap )
     {
     TSize size = aBitmap.SizeInPixels();    
     VGImage image = vgCreateImage(VG_sRGB_565, size.iWidth, size.iHeight,VG_IMAGE_QUALITY_NONANTIALIASED);        
-
-    if ( image == VG_INVALID_HANDLE )
-        {
-        User::Leave(KErrNoMemory);
-        }
     
-    if (aBitmap.DisplayMode() == EColor64K && !aBitmap.IsCompressedInRAM())
+    if ( image != VG_INVALID_HANDLE  ) // to check if the image was created 
         {
-        aBitmap.BeginDataAccess();
-        TInt stride = aBitmap.DataStride();
-        TUint8* ptr = (TUint8*)aBitmap.DataAddress();
-        vgImageSubData (image, ptr, stride, VG_sRGB_565, 0, 0, size.iWidth, size.iHeight );        
-        aBitmap.EndDataAccess();
+        if (aBitmap.DisplayMode() == EColor64K && !aBitmap.IsCompressedInRAM())
+            {
+            aBitmap.BeginDataAccess();
+            TInt stride = aBitmap.DataStride();
+            TUint8* ptr = (TUint8*)aBitmap.DataAddress();
+            
+            vgGetError(); // to zero the error flag
+            vgImageSubData (image, ptr, stride, VG_sRGB_565, 0, 0, size.iWidth, size.iHeight );
+            
+            if(vgGetError() != VG_NO_ERROR)
+                {
+                vgDestroyImage(image);
+                image = VG_INVALID_HANDLE;
+                }
+            aBitmap.EndDataAccess();
+            }
+        else
+            {
+            TSize size = aBitmap.SizeInPixels();
+            CHgVgDrawBuffer* temp = CHgVgDrawBuffer::NewL(size, EColor64K);
+            temp->Gc().BitBlt(TPoint(0,0), &aBitmap);
+            temp->GetDrawBufferToVgImage(size, TPoint(0,0), image, 
+                    VG_sRGB_565);
+            delete temp;        
+            }
         }
-    else
-        {
-        TSize size = aBitmap.SizeInPixels();
-        CHgVgDrawBuffer* temp = CHgVgDrawBuffer::NewL(size, EColor64K);
-        temp->Gc().BitBlt(TPoint(0,0), &aBitmap);
-        temp->GetDrawBufferToVgImage(size, TPoint(0,0), image, 
-                VG_sRGB_565);
-        delete temp;        
-        }
+
     return image;
     }
 
+// ---------------------------------------------------------------------------
+// CreateMaskedVgImageL()
+// ---------------------------------------------------------------------------
+//     
 static VGImage CreateMaskedVgImageL( CFbsBitmap* aBitmap, CFbsBitmap* aMask )
     {
     TSize size = aBitmap->SizeInPixels();
--- a/uifw/ganes/src/HgVgLabel.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgVgLabel.cpp	Tue May 11 16:27:42 2010 +0300
@@ -61,9 +61,9 @@
     {
     iText = aText.AllocL();
     
-    iTextRenderer = CHgVgDrawBuffer::NewL(iRect.Size(), EGray2);
+    iTextRenderer = CHgVgDrawBuffer::NewL(iRect.Size(), EGray256);
         
-    iTextImage = vgCreateImage(VG_A_1, 
+    iTextImage = vgCreateImage(VG_A_8, 
             iRect.Width(), iRect.Height(), 
             VG_IMAGE_QUALITY_NONANTIALIASED);
     
@@ -178,7 +178,7 @@
     text.DrawText(iTextRenderer->Gc(), *iText, ETrue, KRgbWhite);
     
     iTextRenderer->GetDrawBufferToVgImage(TRect(TPoint(0,0), iRect.Size()), 
-            TPoint(0, 0), iTextImage, VG_A_1);    
+            TPoint(0, 0), iTextImage, VG_A_8);    
     }
 
 
@@ -195,7 +195,7 @@
     iTextRenderer->Clear(iRect.Size(), KRgbBlack);
     DrawEmptyListImpl_real(aClientRect, iTextRenderer->Gc(), aText, KRgbWhite);
     iTextRenderer->GetDrawBufferToVgImage(TRect(TPoint(0,0), iRect.Size()), 
-            TPoint(0, 0), iTextImage, VG_A_1);
+            TPoint(0, 0), iTextImage, VG_A_8);
     iDirty = EFalse;
     Draw(aClientRect, 1.0f);
     }
--- a/uifw/ganes/src/HgVgLetterPopup.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgVgLetterPopup.cpp	Tue May 11 16:27:42 2010 +0300
@@ -54,14 +54,14 @@
     {
     iPrevText = ((TDesC)KNullDesC).AllocL();
 
-    iDrawBuffer = CHgVgDrawBuffer::NewL(iRect.Size(), EGray2);
+    iDrawBuffer = CHgVgDrawBuffer::NewL(iRect.Size(), EGray256);
 
     iDrawBuffer->Gc().UseFont(iFont);
     iDrawBuffer->Gc().SetPenColor(KRgbWhite);
     iDrawBuffer->Gc().SetBrushColor(KRgbBlack);
     
     // Create VG Image to use
-    iLetterImage = vgCreateImage(VG_A_1, 
+    iLetterImage = vgCreateImage(VG_A_8, 
             iRect.Width(), iRect.Height(), 
             VG_IMAGE_QUALITY_NONANTIALIASED);
 
@@ -140,7 +140,7 @@
         TPoint pos(iRect.Width() / 2 - width / 2, 
                 iRect.Height() / 2 + height / 2);
         iDrawBuffer->DrawText(aText, iFont, KRgbWhite, pos);*/
-        iDrawBuffer->GetDrawBufferToVgImage(iRect.Size(), TPoint(0,0), iLetterImage, VG_A_1);
+        iDrawBuffer->GetDrawBufferToVgImage(iRect.Size(), TPoint(0,0), iLetterImage, VG_A_8);
         }
     }
 
@@ -159,7 +159,7 @@
     pos.iY += height;
     pos.iX = iRect.Width() / 2 - w2 / 2;
     iDrawBuffer->Gc().DrawText(aText2, pos);
-    iDrawBuffer->GetDrawBufferToVgImage(iRect.Size(), TPoint(0,0), iLetterImage, VG_A_1);    
+    iDrawBuffer->GetDrawBufferToVgImage(iRect.Size(), TPoint(0,0), iLetterImage, VG_A_8);    
     }
 
 // -----------------------------------------------------------------------------
--- a/uifw/ganes/src/HgVgMediaWall.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgVgMediaWall.cpp	Tue May 11 16:27:42 2010 +0300
@@ -334,7 +334,6 @@
     delete iDelayedInit;
     delete iEGL;
     delete iSpring;
-    delete iSurfaceBitmap;
     
     iPopupText1.Close();
     iPopupText2.Close();
@@ -369,7 +368,7 @@
 void CHgVgMediaWall::Draw ( const TRect& /*aRect*/ ) const
     {
 
-    if(iFlags & EHgVgMediaWallUninitialized)
+    if( iFlags & EHgVgMediaWallUninitialized || !iIsForeground )
         {
         FillSystemGcWithSkin( );
         return;
@@ -377,47 +376,36 @@
     
     CHgVgMediaWall* self = const_cast<CHgVgMediaWall*>(this);           
 
-    if (iIsForeground)
+    if( iFlags & EHgVgMediaWallDrawToWindowGC )
         {
-        if( iFlags & EHgVgMediaWallDrawToWindowGC )
+        CFbsBitmap* screenshot = NULL;
+        screenshot = self->DrawToBitmap();
+        if (screenshot)
             {
-            CFbsBitmap* screenshot = NULL;
-            screenshot = self->DrawToBitmap();
-            if (screenshot)
-                {
-                SystemGc().BitBlt( Rect().iTl,screenshot );
-                delete screenshot;
-                }
-            else
-                {
-                FillSystemGcWithSkin( );
-                }
-            }
-        else
-            {
-            
-            // draw with alpha to make a hole to composition layer
-            SystemGc().SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
-            SystemGc().SetBrushColor(TRgb(0,0,0,0));
-            SystemGc().Clear();
-            
-            DrawOpenVG();        
-            }
-        }
-    else
-        {
-        if (iSurfaceBitmap)
-            {
-            SystemGc().BitBlt( Rect().iTl, iSurfaceBitmap );
+            SystemGc().BitBlt( Rect().iTl,screenshot );
+            delete screenshot;
             }
         else
             {
             FillSystemGcWithSkin( );
             }
         }
-    
+    else
+        {
+        // draw with alpha to make a hole to composition layer
+        SystemGc().SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
+        SystemGc().SetBrushColor(TRgb(0,0,0,0));
+        SystemGc().Clear();
+        
+        DrawOpenVG();        
+        }
     }
 
+// -----------------------------------------------------------------------------
+// CHgVgMediaWall::FillSystemGcWithSkin()
+// Draws the display.
+// -----------------------------------------------------------------------------
+//
 void CHgVgMediaWall::FillSystemGcWithSkin( ) const
     {
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
@@ -1219,26 +1207,10 @@
     {
     if(iIsForeground) return; // don't react to gaining foreground without losing it
     
-    // draw previous screenshot
-    DrawNow();
-        
-    // delete it
-    delete iSurfaceBitmap;
-    iSurfaceBitmap = NULL;
-
     iIsForeground = ETrue;
-
-    // init egl and openvg again
-    TRAP_IGNORE( InitRenderingL(EFalse); )
     
-    // reload images to ive
-    ReloadItemsImages();
-
-    ClearFlags(EHgVgMediaWallUninitialized);
-
-    // draw using openvg
-    DrawNow();
-    
+    if(iDelayedInit && !iDelayedInit->IsActive())
+        iDelayedInit->Start(100000, 1000000, TCallBack(DelayedInit, this));
     }    
 
 // ---------------------------------------------------------------------------
@@ -1268,11 +1240,6 @@
 
     iIsForeground = EFalse;
     
-    // take a screenshot 
-    delete iSurfaceBitmap;
-    iSurfaceBitmap = NULL;
-    iSurfaceBitmap = DrawToBitmap();
-
     // draw screenshot using window gc, this is needed
     // for nga effects to work
     DrawNow();
@@ -1281,9 +1248,10 @@
     FreeItemsImages();
     // free other resources
     DestroyRendering();
+
+    SetFlags( EHgVgMediaWallUninitialized | EHgVgMediaWallDrawToWindowGC );
     
     iCoeEnv->WsSession().Flush();
-
     }
 
 // ---------------------------------------------------------------------------