MdeModulePkg:Update Boot Manager form when enter it.

Currently BootManager is an independent library,used by UiApp.It only load boot
option when enter UiApp.So when add boot option through boot maintenance manager,
it will not display in boot manager. In order to fix this issue,now we update the
boot manager form every time we enter it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19440 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Dandan Bi 2015-12-22 09:16:21 +00:00 committed by dandanbi
parent ff3b043f76
commit 0034796f6c
2 changed files with 23 additions and 4 deletions

View File

@ -681,6 +681,18 @@ BootManagerCallback (
EFI_BOOT_MANAGER_LOAD_OPTION *BootOption;
UINTN BootOptionCount;
EFI_INPUT_KEY Key;
if (Action == EFI_BROWSER_ACTION_FORM_OPEN) {
//
//Means enter the boot manager form.
//Update the boot manage page,because the boot option may changed.
//
if (QuestionId == 0x1212){
UpdateBootManager();
}
return EFI_SUCCESS;
}
if (Action != EFI_BROWSER_ACTION_CHANGED) {
//
// Do nothing for other UEFI Action. Only do call back when data is changed.
@ -759,10 +771,6 @@ BootManagerLibConstructor (
);
ASSERT (gBootManagerPrivate.HiiHandle != NULL);
//
// Update boot manager page
//
UpdateBootManager ();
return EFI_SUCCESS;
}

View File

@ -32,6 +32,17 @@ formset
subtitle text = STRING_TOKEN(STR_BOOT_OPTION_BANNER);
subtitle text = STRING_TOKEN(STR_LAST_STRING);
//
//Add this invisable text in order to indicate enter Boot Manager form.
//
suppressif TRUE;
text
help = STRING_TOKEN(STR_LAST_STRING ),
text = STRING_TOKEN(STR_LAST_STRING ),
flags = INTERACTIVE,
key = 0x1212;
endif;
//
// This is where we will dynamically add choices for the Boot Manager
//