diff options
author | Eric Dong <eric.dong@intel.com> | 2013-09-25 12:40:31 +0000 |
---|---|---|
committer | ydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524> | 2013-09-25 12:40:31 +0000 |
commit | 798e4d22c4db5b710ca5fa98f5ee47aeeae7f9ac (patch) | |
tree | 8a139f844a881472811b0a773298f9e53c50bbd6 /MdeModulePkg/Universal/SetupBrowserDxe/Setup.c | |
parent | b1362258ef660d72471abf3dd6dab3835a01b0f7 (diff) | |
download | edk2-platforms-798e4d22c4db5b710ca5fa98f5ee47aeeae7f9ac.tar.xz |
Use RETRIEVE instead of CHANGING for refresh question.
Signed-off-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@14727 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/SetupBrowserDxe/Setup.c')
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/Setup.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c index 7cba785a88..7975a1df19 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c @@ -48,6 +48,7 @@ LIST_ENTRY gBrowserFormSetList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserFor LIST_ENTRY gBrowserHotKeyList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserHotKeyList);
LIST_ENTRY gBrowserStorageList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserStorageList);
+BOOLEAN gFinishRetrieveCall;
BOOLEAN gResetRequired;
BOOLEAN gExitRequired;
BROWSER_SETTING_SCOPE gBrowserSettingScope = FormSetLevel;
@@ -257,8 +258,11 @@ LoadAllHiiFormset ( EFI_GUID ZeroGuid;
EFI_STATUS Status;
FORM_BROWSER_FORMSET *OldFormset;
+ BOOLEAN OldRetrieveValue;
OldFormset = mSystemLevelFormSet;
+ OldRetrieveValue = gFinishRetrieveCall;
+ gFinishRetrieveCall = FALSE;
//
// Get all the Hii handles
@@ -307,6 +311,7 @@ LoadAllHiiFormset ( //
FreePool (HiiHandles);
+ gFinishRetrieveCall = OldRetrieveValue;
mSystemLevelFormSet = OldFormset;
}
@@ -365,6 +370,7 @@ SendForm ( //
SaveBrowserContext ();
+ gFinishRetrieveCall = FALSE;
gResetRequired = FALSE;
gExitRequired = FALSE;
Status = EFI_SUCCESS;
@@ -3651,7 +3657,8 @@ LoadFormConfig ( // Call the Retrieve call back function for all questions.
//
if ((FormSet->ConfigAccess != NULL) && (Selection != NULL) &&
- ((Question->QuestionFlags & EFI_IFR_FLAG_CALLBACK) == EFI_IFR_FLAG_CALLBACK)) {
+ ((Question->QuestionFlags & EFI_IFR_FLAG_CALLBACK) == EFI_IFR_FLAG_CALLBACK) &&
+ !gFinishRetrieveCall) {
//
// Check QuestionValue does exist.
//
@@ -3675,7 +3682,7 @@ LoadFormConfig ( );
}
- Status = ProcessCallBackFunction(Selection, Question, EFI_BROWSER_ACTION_RETRIEVE, TRUE);
+ Status = ProcessCallBackFunction(Selection, FormSet, Form, Question, EFI_BROWSER_ACTION_RETRIEVE, TRUE);
}
//
|