Check mHiiPackageListUpdated before set it to FALSE.
Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13947 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -1436,6 +1436,15 @@ SetupBrowser (
|
|||||||
InsertTailList (&gBrowserFormSetList, &gOldFormSet->Link);
|
InsertTailList (&gBrowserFormSetList, &gOldFormSet->Link);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
//
|
||||||
|
// IFR is updated, force to reparse the IFR binary
|
||||||
|
//
|
||||||
|
if (mHiiPackageListUpdated) {
|
||||||
|
Selection->Action = UI_ACTION_REFRESH_FORMSET;
|
||||||
|
mHiiPackageListUpdated = FALSE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Initialize Selection->Form
|
// Initialize Selection->Form
|
||||||
//
|
//
|
||||||
@ -1476,11 +1485,6 @@ SetupBrowser (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Reset FormPackage update flag
|
|
||||||
//
|
|
||||||
mHiiPackageListUpdated = FALSE;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Before display new form, invoke ConfigAccess.Callback() with EFI_BROWSER_ACTION_FORM_OPEN
|
// Before display new form, invoke ConfigAccess.Callback() with EFI_BROWSER_ACTION_FORM_OPEN
|
||||||
// for each question with callback flag.
|
// for each question with callback flag.
|
||||||
@ -1564,11 +1568,6 @@ SetupBrowser (
|
|||||||
gResetRequired = TRUE;
|
gResetRequired = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Reset FormPackage update flag
|
|
||||||
//
|
|
||||||
mHiiPackageListUpdated = FALSE;
|
|
||||||
|
|
||||||
if ((ConfigAccess != NULL) &&
|
if ((ConfigAccess != NULL) &&
|
||||||
((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) == EFI_IFR_FLAG_CALLBACK) &&
|
((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) == EFI_IFR_FLAG_CALLBACK) &&
|
||||||
(Statement->Operand != EFI_IFR_PASSWORD_OP)) {
|
(Statement->Operand != EFI_IFR_PASSWORD_OP)) {
|
||||||
@ -1597,17 +1596,6 @@ SetupBrowser (
|
|||||||
ProcessCallBackFunction(Selection, Statement, EFI_BROWSER_ACTION_CHANGED, FALSE);
|
ProcessCallBackFunction(Selection, Statement, EFI_BROWSER_ACTION_CHANGED, FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Check whether Form Package has been updated during Callback
|
|
||||||
//
|
|
||||||
if (mHiiPackageListUpdated && (Selection->Action == UI_ACTION_REFRESH_FORM)) {
|
|
||||||
//
|
|
||||||
// Force to reparse IFR binary of target Formset
|
|
||||||
//
|
|
||||||
mHiiPackageListUpdated = FALSE;
|
|
||||||
Selection->Action = UI_ACTION_REFRESH_FORMSET;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
Reference in New Issue
Block a user