commonuis/CommonDialogs/src/CAknCommonDialogsRadioButtonSettingPage.cpp
branchRCL_3
changeset 19 aecbbf00d063
parent 7 08e69e956a8c
child 20 d48ab3b357f1
--- 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