diff options
Diffstat (limited to 'MdeModulePkg/Universal/SetupBrowserDxe')
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c index b8612e8..62811c7 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c @@ -1437,6 +1437,15 @@ SetupBrowser ( do {
//
+ // IFR is updated, force to reparse the IFR binary
+ //
+ if (mHiiPackageListUpdated) {
+ Selection->Action = UI_ACTION_REFRESH_FORMSET;
+ mHiiPackageListUpdated = FALSE;
+ break;
+ }
+
+ //
// Initialize Selection->Form
//
if (Selection->FormId == 0) {
@@ -1477,11 +1486,6 @@ SetupBrowser ( }
//
- // Reset FormPackage update flag
- //
- mHiiPackageListUpdated = FALSE;
-
- //
// Before display new form, invoke ConfigAccess.Callback() with EFI_BROWSER_ACTION_FORM_OPEN
// for each question with callback flag.
// New form may be the first form, or the different form after another form close.
@@ -1564,11 +1568,6 @@ SetupBrowser ( gResetRequired = TRUE;
}
- //
- // Reset FormPackage update flag
- //
- mHiiPackageListUpdated = FALSE;
-
if ((ConfigAccess != NULL) &&
((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) == EFI_IFR_FLAG_CALLBACK) &&
(Statement->Operand != EFI_IFR_PASSWORD_OP)) {
@@ -1597,17 +1596,6 @@ SetupBrowser ( 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;
- }
}
//
|