Keep the highlight field after user changes the value for time/date opcode

Signed-off-by:ydong10
Reviewed-by:lgao4







git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11975 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
ydong10 2011-07-05 08:20:43 +00:00
parent 889a4bc2a9
commit d88ca2c90d
2 changed files with 7 additions and 1 deletions

View File

@ -1946,6 +1946,7 @@ UiDisplayMenu (
// Highlight not specified, fetch it from cached menu // Highlight not specified, fetch it from cached menu
// //
Selection->QuestionId = CurrentMenu->QuestionId; Selection->QuestionId = CurrentMenu->QuestionId;
Selection->Sequence = CurrentMenu->Sequence;
} }
// //
@ -2317,7 +2318,9 @@ UiDisplayMenu (
NewPos = gMenuOption.ForwardLink; NewPos = gMenuOption.ForwardLink;
SavedMenuOption = MENU_OPTION_FROM_LINK (NewPos); 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; NewPos = NewPos->ForwardLink;
SavedMenuOption = MENU_OPTION_FROM_LINK (NewPos); SavedMenuOption = MENU_OPTION_FROM_LINK (NewPos);
} }
@ -2453,6 +2456,7 @@ UiDisplayMenu (
// Record highlight for current menu // Record highlight for current menu
// //
CurrentMenu->QuestionId = Statement->QuestionId; CurrentMenu->QuestionId = Statement->QuestionId;
CurrentMenu->Sequence = MenuOption->Sequence;
// //
// Set reverse attribute // Set reverse attribute

View File

@ -87,6 +87,7 @@ typedef struct {
EFI_GUID FormSetGuid; EFI_GUID FormSetGuid;
UINT16 FormId; UINT16 FormId;
UINT16 QuestionId; UINT16 QuestionId;
UINTN Sequence; // used for time/date only.
UINTN TopRow; UINTN TopRow;
UINTN BottomRow; UINTN BottomRow;
@ -163,6 +164,7 @@ struct _UI_MENU_LIST {
EFI_GUID FormSetGuid; EFI_GUID FormSetGuid;
UINT16 FormId; UINT16 FormId;
UINT16 QuestionId; UINT16 QuestionId;
UINTN Sequence; // used for time/date only.
UI_MENU_LIST *Parent; UI_MENU_LIST *Parent;
LIST_ENTRY ChildListHead; LIST_ENTRY ChildListHead;