From a6c0ad816ac8f26d1af38f1a2c2ea538a852cb5b Mon Sep 17 00:00:00 2001 From: Eric Dong Date: Tue, 18 Feb 2014 10:50:40 +0000 Subject: [PATCH] Update the ValueChanged flag before call CHANGED callback type. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong Reviewed-by: Liming Gao git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15246 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Universal/SetupBrowserDxe/Presentation.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c index e33081422b..5ca0700bb2 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c @@ -2582,18 +2582,22 @@ SetupBrowser ( } } + // + // Verify whether question value has checked, update the ValueChanged flag in Question. + // + IsQuestionValueChanged(gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithBuffer); + if (!EFI_ERROR (Status) && Statement->Operand != EFI_IFR_REF_OP) { ProcessCallBackFunction(Selection, Selection->FormSet, Selection->Form, Statement, EFI_BROWSER_ACTION_CHANGED, FALSE); } } else if (Statement->Operand != EFI_IFR_PASSWORD_OP) { SetQuestionValue (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithEditBuffer); + // + // Verify whether question value has checked, update the ValueChanged flag in Question. + // + IsQuestionValueChanged(gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithBuffer); } - // - // Verify whether question value has checked, update the ValueChanged flag in Question. - // - IsQuestionValueChanged(gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithBuffer); - // // If question has EFI_IFR_FLAG_RESET_REQUIRED flag and without storage and process question success till here, // trig the gResetFlag.