--- a/commonuis/CommonDialogs/src/CAknCommonDialogsRadioButtonSettingPage.cpp Thu Aug 19 10:11:06 2010 +0300
+++ b/commonuis/CommonDialogs/src/CAknCommonDialogsRadioButtonSettingPage.cpp Tue Aug 31 15:28:30 2010 +0300
@@ -130,14 +130,7 @@
}
case EKeyOK:
- case EKeyEnter:
{
- if ( ListBoxControl()->ItemDrawer()->Flags()
- & CListItemDrawer::ESingleClickDisabledHighlight )
- {
- return CAknSettingPage::OfferKeyEventL( aKeyEvent, aType );
- }
-
TInt focus( lb->CurrentItemIndex() );
TInt topIndex( lb->TopItemIndex() );
@@ -201,8 +194,36 @@
// -----------------------------------------------------------------------------
//
void CAknCommonDialogsRadioButtonSettingPage::ProcessCommandL(TInt aCommandId)
- {
- CAknRadioButtonSettingPage::ProcessCommandL( aCommandId );
+ {
+ if(!IsEditable() && !(aCommandId == EAknSoftkeyBack || aCommandId == EAknSoftkeyCancel))
+ {
+ return;
+ }
+
+ HideMenu();
+
+ // Respond to softkey events
+ switch (aCommandId)
+ {
+ case EAknSoftkeyOk:
+ case EAknSoftkeySelect:
+ case EAknSoftkeyDone:
+ {
+ SelectCurrentItemL(); // has non-trivial implemenations in listbox type
+ // controls to put the selection on the current item
+ AttemptExitL(ETrue);
+ break;
+ }
+ case EAknSoftkeyBack:
+ case EAknSoftkeyCancel:
+ AttemptExitL(EFalse);
+ break;
+ case EAknSoftkeyOptions:
+ DisplayMenuL();
+ break;
+ default:
+ break;
+ }
}
// -----------------------------------------------------------------------------
// CAknCommonDialogsRadioButtonSettingPage::NotifyDrivesChangedL