diff options
Diffstat (limited to 'MdeModulePkg/Universal/SetupBrowserDxe')
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/Ui.c | 6 | ||||
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/Ui.h | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c index 4f814990bb..5c8d676186 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c @@ -1946,6 +1946,7 @@ UiDisplayMenu ( // Highlight not specified, fetch it from cached menu
//
Selection->QuestionId = CurrentMenu->QuestionId;
+ Selection->Sequence = CurrentMenu->Sequence;
}
//
@@ -2317,7 +2318,9 @@ UiDisplayMenu ( NewPos = gMenuOption.ForwardLink;
SavedMenuOption = MENU_OPTION_FROM_LINK (NewPos);
- while (SavedMenuOption->ThisTag->QuestionId != Selection->QuestionId && NewPos->ForwardLink != &gMenuOption) {
+ while ((SavedMenuOption->ThisTag->QuestionId != Selection->QuestionId ||
+ SavedMenuOption->Sequence != Selection->Sequence) &&
+ NewPos->ForwardLink != &gMenuOption) {
NewPos = NewPos->ForwardLink;
SavedMenuOption = MENU_OPTION_FROM_LINK (NewPos);
}
@@ -2453,6 +2456,7 @@ UiDisplayMenu ( // Record highlight for current menu
//
CurrentMenu->QuestionId = Statement->QuestionId;
+ CurrentMenu->Sequence = MenuOption->Sequence;
//
// Set reverse attribute
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.h b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.h index 181b9a43dc..0acec825cf 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.h +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.h @@ -87,6 +87,7 @@ typedef struct { EFI_GUID FormSetGuid;
UINT16 FormId;
UINT16 QuestionId;
+ UINTN Sequence; // used for time/date only.
UINTN TopRow;
UINTN BottomRow;
@@ -163,6 +164,7 @@ struct _UI_MENU_LIST { EFI_GUID FormSetGuid;
UINT16 FormId;
UINT16 QuestionId;
+ UINTN Sequence; // used for time/date only.
UI_MENU_LIST *Parent;
LIST_ENTRY ChildListHead;
|