From d88ca2c90d49eb08649a905bdeacfb6feba81cf3 Mon Sep 17 00:00:00 2001 From: ydong10 Date: Tue, 5 Jul 2011 08:20:43 +0000 Subject: [PATCH] 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 --- MdeModulePkg/Universal/SetupBrowserDxe/Ui.c | 6 +++++- MdeModulePkg/Universal/SetupBrowserDxe/Ui.h | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) 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;