}\r
\r
NewLoadContext->Deleted = FALSE;\r
- //CallbackData->BmmFakeNvData.BootOptionDel[Index] = FALSE;\r
+\r
+ if (CallbackData->BmmFakeNvData.BootOptionDel[Index] && !CallbackData->BmmFakeNvData.BootOptionDelMark[Index]) {\r
+ //\r
+ // CallbackData->BmmFakeNvData.BootOptionDel[Index] == TRUE means browser knows this boot option is selected\r
+ // CallbackData->BmmFakeNvData.BootOptionDelMark[Index] = FALSE means BDS knows the selected boot option has\r
+ // deleted, browser maintains old useless info. So clear this info here, and later update this info to browser\r
+ // through HiiSetBrowserData function.\r
+ //\r
+ CallbackData->BmmFakeNvData.BootOptionDel[Index] = FALSE;\r
+ }\r
\r
HiiCreateCheckBoxOpCode (\r
mStartOpCodeHandle,\r
(UINT16) (BOOT_OPTION_DEL_VAR_OFFSET + Index),\r
NewMenuEntry->DisplayStringToken,\r
NewMenuEntry->HelpStringToken,\r
- 0,\r
+ EFI_IFR_FLAG_CALLBACK,\r
0,\r
NULL\r
);\r
\r
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
NewLoadContext->Deleted = FALSE;\r
- //CallbackData->BmmFakeNvData.DriverOptionDel[Index] = FALSE;\r
+\r
+ if (CallbackData->BmmFakeNvData.DriverOptionDel[Index] && !CallbackData->BmmFakeNvData.DriverOptionDelMark[Index]) {\r
+ //\r
+ // CallbackData->BmmFakeNvData.BootOptionDel[Index] == TRUE means browser knows this boot option is selected\r
+ // CallbackData->BmmFakeNvData.BootOptionDelMark[Index] = FALSE means BDS knows the selected boot option has\r
+ // deleted, browser maintains old useless info. So clear this info here, and later update this info to browser\r
+ // through HiiSetBrowserData function.\r
+ //\r
+ CallbackData->BmmFakeNvData.DriverOptionDel[Index] = FALSE;\r
+ }\r
\r
HiiCreateCheckBoxOpCode (\r
mStartOpCodeHandle,\r
(UINT16) (DRIVER_OPTION_DEL_VAR_OFFSET + Index),\r
NewMenuEntry->DisplayStringToken,\r
NewMenuEntry->HelpStringToken,\r
- 0,\r
+ EFI_IFR_FLAG_CALLBACK,\r
0,\r
NULL\r
);\r
UINT16 NewPageId\r
)\r
{\r
+ //\r
+ // For the question don't impact the page update, just ignore it.\r
+ //\r
+ if (((NewPageId >= BOOT_OPTION_DEL_QUESTION_ID) && (NewPageId < BOOT_OPTION_DEL_QUESTION_ID + MAX_MENU_NUMBER)) ||\r
+ ((NewPageId >= DRIVER_OPTION_DEL_QUESTION_ID) && (NewPageId < DRIVER_OPTION_DEL_QUESTION_ID + MAX_MENU_NUMBER))) {\r
+ return;\r
+ }\r
+\r
if ((NewPageId < FILE_OPTION_OFFSET) && (NewPageId >= HANDLE_OPTION_OFFSET)) {\r
//\r
// If we select a handle to add driver option, advance to the add handle description page.\r