diff -r fcdfafb36fe7 -r aecbbf00d063 commonuis/CommonDialogs/src/CAknCommonDialogsRadioButtonSettingPage.cpp --- 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