}\r
\r
MenuOption = NULL;\r
-\r
- if (IsListEmpty (&gMenuOption)) { \r
- ControlFlag = CfReadKey;\r
- }\r
}\r
break;\r
\r
break;\r
}\r
\r
+ if (IsListEmpty (&gMenuOption)) {\r
+ //\r
+ // No menu option, just update the hotkey filed.\r
+ //\r
+ RefreshKeyHelp(gFormData, NULL, FALSE);\r
+ break;\r
+ }\r
+\r
if (MenuOption != NULL && TopOfScreen == &MenuOption->Link) {\r
Temp = SkipValue;\r
} else {\r
}\r
\r
if (Repaint || NewLine) {\r
- //\r
- // Don't print anything if it is a NULL help token\r
- //\r
- ASSERT(MenuOption != NULL);\r
- HelpInfo = ((EFI_IFR_STATEMENT_HEADER *) ((CHAR8 *)MenuOption->ThisTag->OpCode + sizeof (EFI_IFR_OP_HEADER)))->Help;\r
- if (HelpInfo == 0 || !IsSelectable (MenuOption)) {\r
+ if (IsListEmpty (&gMenuOption)) {\r
+ //\r
+ // Don't print anything if no mwnu option.\r
+ //\r
StringPtr = GetToken (STRING_TOKEN (EMPTY_STRING), gHiiHandle);\r
} else {\r
- StringPtr = GetToken (HelpInfo, gFormData->HiiHandle);\r
+ //\r
+ // Don't print anything if it is a NULL help token\r
+ //\r
+ ASSERT(MenuOption != NULL);\r
+ HelpInfo = ((EFI_IFR_STATEMENT_HEADER *) ((CHAR8 *)MenuOption->ThisTag->OpCode + sizeof (EFI_IFR_OP_HEADER)))->Help;\r
+ if (HelpInfo == 0 || !IsSelectable (MenuOption)) {\r
+ StringPtr = GetToken (STRING_TOKEN (EMPTY_STRING), gHiiHandle);\r
+ } else {\r
+ StringPtr = GetToken (HelpInfo, gFormData->HiiHandle);\r
+ }\r
}\r
\r
RowCount = BottomRow - TopRow + 1;\r
break;\r
\r
case CfScreenOperation:\r
- if (ScreenOperation != UiReset) {\r
+ if ((ScreenOperation != UiReset) && (ScreenOperation != UiHotKey)) {\r
//\r
- // If the screen has no menu items, and the user didn't select UiReset\r
+ // If the screen has no menu items, and the user didn't select UiReset or UiHotKey\r
// ignore the selection and go back to reading keys.\r
//\r
if (IsListEmpty (&gMenuOption)) {\r