]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
MdeModluePkg: Enable refresh opcode to refresh the entire form.
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / IfrParse.c
index 0e9c82363d61f02fe2dee4a4754e3317ae610415..a4a2478c48b932e8970dd66c11cbff1f7ea0ea7d 100644 (file)
@@ -2479,8 +2479,24 @@ ParseOpCodes (
     // Refresh guid.\r
     //\r
     case EFI_IFR_REFRESH_ID_OP:\r
-      ASSERT (ParentStatement != NULL);\r
-      CopyMem (&ParentStatement->RefreshGuid, &((EFI_IFR_REFRESH_ID *) OpCodeData)->RefreshEventGroupId, sizeof (EFI_GUID));\r
+      //\r
+      // Get ScopeOpcode from top of stack\r
+      //\r
+      PopScope (&ScopeOpCode);\r
+      PushScope (ScopeOpCode);\r
+\r
+      switch (ScopeOpCode) {\r
+      case EFI_IFR_FORM_OP:\r
+      case EFI_IFR_FORM_MAP_OP:\r
+        ASSERT (CurrentForm != NULL);\r
+        CopyMem (&CurrentForm->RefreshGuid, &((EFI_IFR_REFRESH_ID *) OpCodeData)->RefreshEventGroupId, sizeof (EFI_GUID));\r
+        break;\r
+\r
+      default:\r
+        ASSERT (ParentStatement != NULL);\r
+        CopyMem (&ParentStatement->RefreshGuid, &((EFI_IFR_REFRESH_ID *) OpCodeData)->RefreshEventGroupId, sizeof (EFI_GUID));\r
+        break;\r
+      }\r
       break;\r
 \r
     //\r