Update for IntelFrameworkModulePkg.
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / BdsDxe / FrontPage.c
index 8a8286a..efecf7b 100644 (file)
@@ -175,23 +175,26 @@ FrontPageCallback (
   CHAR8                         *PlatformSupportedLanguages;\r
   CHAR8                         *BestLanguage;\r
 \r
-  if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
+  if (Action != EFI_BROWSER_ACTION_CHANGING && Action != EFI_BROWSER_ACTION_CHANGED) {\r
+    //\r
+    // All other action return unsupported.\r
+    //\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+  \r
+  gCallbackKey = QuestionId;\r
+\r
+  if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
     if ((Value == NULL) || (ActionRequest == NULL)) {\r
       return EFI_INVALID_PARAMETER;\r
     }\r
 \r
-    gCallbackKey = QuestionId;\r
-\r
-    //\r
-    // The first 4 entries in the Front Page are to be GUARANTEED to remain constant so IHV's can\r
-    // describe to their customers in documentation how to find their setup information (namely\r
-    // under the device manager and specific buckets)\r
-    //\r
     switch (QuestionId) {\r
     case FRONT_PAGE_KEY_CONTINUE:\r
       //\r
       // This is the continue - clear the screen and return an error to get out of FrontPage loop\r
       //\r
+      *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;\r
       break;\r
 \r
     case FRONT_PAGE_KEY_LANGUAGE:\r
@@ -250,11 +253,27 @@ FrontPageCallback (
         ASSERT (FALSE);\r
       }\r
 \r
+      *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;\r
+\r
       FreePool (PlatformSupportedLanguages);\r
       FreePool (Lang);\r
       FreePool (LanguageString);\r
       break;\r
 \r
+    default:\r
+      break;\r
+    }\r
+  } else if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
+    if (Value == NULL) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
+\r
+    //\r
+    // The first 4 entries in the Front Page are to be GUARANTEED to remain constant so IHV's can\r
+    // describe to their customers in documentation how to find their setup information (namely\r
+    // under the device manager and specific buckets)\r
+    //\r
+    switch (QuestionId) {\r
     case FRONT_PAGE_KEY_BOOT_MANAGER:\r
       //\r
       // Boot Manager\r
@@ -277,16 +296,9 @@ FrontPageCallback (
       gCallbackKey = 0;\r
       break;\r
     }\r
-\r
-    *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;\r
-\r
-    return EFI_SUCCESS;\r
   }\r
 \r
-  //\r
-  // All other action return unsupported.\r
-  //\r
-  return EFI_UNSUPPORTED;\r
+  return EFI_SUCCESS;  \r
 }\r
 \r
 /**\r
@@ -1181,6 +1193,7 @@ PlatformBdsEnterFrontPage (
     BootLogo->SetBootLogo (BootLogo, NULL, 0, 0, 0, 0);\r
   }\r
 \r
+  Status = EFI_SUCCESS;\r
   do {\r
     //\r
     // Set proper video resolution and text mode for setup\r
@@ -1195,7 +1208,7 @@ PlatformBdsEnterFrontPage (
     UpdateFrontPageStrings ();\r
 \r
     gCallbackKey = 0;\r
-    Status = CallFrontPage ();\r
+    CallFrontPage ();\r
 \r
     //\r
     // If gCallbackKey is greater than 1 and less or equal to 5,\r