]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Adjust the start position of the opcode string before saving it to avoid show menu...
authorydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 27 Jun 2011 09:07:23 +0000 (09:07 +0000)
committerydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 27 Jun 2011 09:07:23 +0000 (09:07 +0000)
Signed-off-by: ydong10
Reviewed-by: lgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11892 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/SetupBrowserDxe/Ui.c

index 1cd8a1a795acc0d080c05a9b02ddeddfd34fd768..4609bab86c1146c25d415b473876e534c168579d 100644 (file)
@@ -1910,70 +1910,6 @@ UiDisplayMenu (
           Temp  = 0;\r
           Row   = OriginalRow;\r
 \r
-          //\r
-          // If Question has refresh guid, register the op-code.\r
-          //\r
-          if (!CompareGuid (&Statement->RefreshGuid, &gZeroGuid)) {\r
-            if (gMenuEventGuidRefreshHead == NULL) {\r
-              MenuUpdateEntry = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
-              gMenuEventGuidRefreshHead = MenuUpdateEntry;\r
-            } else {\r
-              MenuUpdateEntry = gMenuEventGuidRefreshHead;\r
-              while (MenuUpdateEntry->Next != NULL) {\r
-                MenuUpdateEntry = MenuUpdateEntry->Next; \r
-              }\r
-              MenuUpdateEntry->Next = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
-              MenuUpdateEntry = MenuUpdateEntry->Next; \r
-            }\r
-            ASSERT (MenuUpdateEntry != NULL);\r
-            Status = gBS->CreateEventEx (EVT_NOTIFY_SIGNAL, TPL_NOTIFY, RefreshQuestionNotify, MenuUpdateEntry, &Statement->RefreshGuid, &MenuUpdateEntry->Event);\r
-            ASSERT (!EFI_ERROR (Status));\r
-            MenuUpdateEntry->MenuOption        = MenuOption;\r
-            MenuUpdateEntry->Selection         = Selection;\r
-            MenuUpdateEntry->CurrentColumn     = MenuOption->OptCol;\r
-            MenuUpdateEntry->CurrentRow        = MenuOption->Row;\r
-            if (MenuOption->GrayOut) {\r
-              MenuUpdateEntry->CurrentAttribute = FIELD_TEXT_GRAYED | FIELD_BACKGROUND;\r
-            } else {\r
-              MenuUpdateEntry->CurrentAttribute = PcdGet8 (PcdBrowserFieldTextColor) | FIELD_BACKGROUND;\r
-            }\r
-          }\r
-          \r
-          //\r
-          // If Question request refresh, register the op-code\r
-          //\r
-          if (Statement->RefreshInterval != 0) {\r
-            //\r
-            // Menu will be refreshed at minimal interval of all Questions\r
-            // which have refresh request\r
-            //\r
-            if (MinRefreshInterval == 0 || Statement->RefreshInterval < MinRefreshInterval) {\r
-              MinRefreshInterval = Statement->RefreshInterval;\r
-            }\r
-            \r
-            if (gMenuRefreshHead == NULL) {\r
-              MenuRefreshEntry = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
-              gMenuRefreshHead = MenuRefreshEntry;\r
-            } else {\r
-              MenuRefreshEntry = gMenuRefreshHead;\r
-              while (MenuRefreshEntry->Next != NULL) {\r
-                MenuRefreshEntry = MenuRefreshEntry->Next; \r
-              }\r
-              MenuRefreshEntry->Next = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
-              MenuRefreshEntry = MenuRefreshEntry->Next;\r
-            }\r
-            ASSERT (MenuRefreshEntry != NULL);            \r
-            MenuRefreshEntry->MenuOption        = MenuOption;\r
-            MenuRefreshEntry->Selection         = Selection;\r
-            MenuRefreshEntry->CurrentColumn     = MenuOption->OptCol;\r
-            MenuRefreshEntry->CurrentRow        = MenuOption->Row;\r
-            if (MenuOption->GrayOut) {\r
-              MenuRefreshEntry->CurrentAttribute = FIELD_TEXT_GRAYED | FIELD_BACKGROUND;\r
-            } else {               \r
-              MenuRefreshEntry->CurrentAttribute = PcdGet8 (PcdBrowserFieldTextColor) | FIELD_BACKGROUND;\r
-            }\r
-          }\r
-\r
           Status = ProcessOptions (Selection, MenuOption, FALSE, &OptionString);\r
           if (EFI_ERROR (Status)) {\r
             //\r
@@ -2039,6 +1975,71 @@ UiDisplayMenu (
 \r
             FreePool (OptionString);\r
           }\r
+\r
+          //\r
+          // If Question has refresh guid, register the op-code.\r
+          //\r
+          if (!CompareGuid (&Statement->RefreshGuid, &gZeroGuid)) {\r
+            if (gMenuEventGuidRefreshHead == NULL) {\r
+              MenuUpdateEntry = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
+              gMenuEventGuidRefreshHead = MenuUpdateEntry;\r
+            } else {\r
+              MenuUpdateEntry = gMenuEventGuidRefreshHead;\r
+              while (MenuUpdateEntry->Next != NULL) {\r
+                MenuUpdateEntry = MenuUpdateEntry->Next; \r
+              }\r
+              MenuUpdateEntry->Next = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
+              MenuUpdateEntry = MenuUpdateEntry->Next; \r
+            }\r
+            ASSERT (MenuUpdateEntry != NULL);\r
+            Status = gBS->CreateEventEx (EVT_NOTIFY_SIGNAL, TPL_NOTIFY, RefreshQuestionNotify, MenuUpdateEntry, &Statement->RefreshGuid, &MenuUpdateEntry->Event);\r
+            ASSERT (!EFI_ERROR (Status));\r
+            MenuUpdateEntry->MenuOption        = MenuOption;\r
+            MenuUpdateEntry->Selection         = Selection;\r
+            MenuUpdateEntry->CurrentColumn     = MenuOption->OptCol;\r
+            MenuUpdateEntry->CurrentRow        = MenuOption->Row;\r
+            if (MenuOption->GrayOut) {\r
+              MenuUpdateEntry->CurrentAttribute = FIELD_TEXT_GRAYED | FIELD_BACKGROUND;\r
+            } else {\r
+              MenuUpdateEntry->CurrentAttribute = PcdGet8 (PcdBrowserFieldTextColor) | FIELD_BACKGROUND;\r
+            }\r
+          }\r
+          \r
+          //\r
+          // If Question request refresh, register the op-code\r
+          //\r
+          if (Statement->RefreshInterval != 0) {\r
+            //\r
+            // Menu will be refreshed at minimal interval of all Questions\r
+            // which have refresh request\r
+            //\r
+            if (MinRefreshInterval == 0 || Statement->RefreshInterval < MinRefreshInterval) {\r
+              MinRefreshInterval = Statement->RefreshInterval;\r
+            }\r
+            \r
+            if (gMenuRefreshHead == NULL) {\r
+              MenuRefreshEntry = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
+              gMenuRefreshHead = MenuRefreshEntry;\r
+            } else {\r
+              MenuRefreshEntry = gMenuRefreshHead;\r
+              while (MenuRefreshEntry->Next != NULL) {\r
+                MenuRefreshEntry = MenuRefreshEntry->Next; \r
+              }\r
+              MenuRefreshEntry->Next = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
+              MenuRefreshEntry = MenuRefreshEntry->Next;\r
+            }\r
+            ASSERT (MenuRefreshEntry != NULL);            \r
+            MenuRefreshEntry->MenuOption        = MenuOption;\r
+            MenuRefreshEntry->Selection         = Selection;\r
+            MenuRefreshEntry->CurrentColumn     = MenuOption->OptCol;\r
+            MenuRefreshEntry->CurrentRow        = MenuOption->Row;\r
+            if (MenuOption->GrayOut) {\r
+              MenuRefreshEntry->CurrentAttribute = FIELD_TEXT_GRAYED | FIELD_BACKGROUND;\r
+            } else {               \r
+              MenuRefreshEntry->CurrentAttribute = PcdGet8 (PcdBrowserFieldTextColor) | FIELD_BACKGROUND;\r
+            }\r
+          }\r
+          \r
           //\r
           // If this is a text op with secondary text information\r
           //\r