]> git.proxmox.com Git - mirror_edk2.git/commitdiff
The original code does not initialize the global width constants before creating...
authorSamer El-Haj-Mahmoud elhaj <Samer El-Haj-Mahmoud elhaj@hp.com>
Tue, 26 Aug 2014 07:16:29 +0000 (07:16 +0000)
committerydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 26 Aug 2014 07:16:29 +0000 (07:16 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Samer El-Haj-Mahmoud elhaj@hp.com
Reviewed-by: Eric Dong <eric.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15898 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c

index 6d0dd2569cad938fdb2883ff8ee5b96ce2e0c07d..0db450e078d1f7a750730bcd4969c59a87715691 100644 (file)
@@ -2,6 +2,7 @@
 Entry and initialization module for the browser.\r
 \r
 Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -2125,16 +2126,7 @@ UiDisplayMenu (
 \r
   ZeroMem (&Key, sizeof (EFI_INPUT_KEY));\r
 \r
-  //\r
-  //  Left                                              right\r
-  //   |<-.->|<-.........->|<- .........->|<-...........->|\r
-  //     Skip    Prompt         Option         Help \r
-  //\r
-  Width             = (CHAR16) ((gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn) / 3);\r
-  gOptionBlockWidth = Width + 1; \r
-  gHelpBlockWidth   = (CHAR16) (Width - LEFT_SKIPPED_COLUMNS);\r
-  gPromptBlockWidth = (CHAR16) (gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * Width - 1);\r
-\r
+  Width     = (UINT16)gOptionBlockWidth - 1;\r
   TopRow    = gStatementDimensions.TopRow    + SCROLL_ARROW_HEIGHT;\r
   BottomRow = gStatementDimensions.BottomRow - SCROLL_ARROW_HEIGHT - 1;\r
 \r
@@ -3417,13 +3409,26 @@ FormDisplay (
     return EFI_SUCCESS;\r
   }\r
 \r
-  ConvertStatementToMenu();\r
-\r
   Status = DisplayPageFrame (FormData, &gStatementDimensions);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
 \r
+  //\r
+  // Global Widths should be initialized before any MenuOption creation\r
+  // or the GetWidth() used in UiAddMenuOption() will return incorrect value.\r
+  //\r
+  //\r
+  //  Left                                              right\r
+  //   |<-.->|<-.........->|<- .........->|<-...........->|\r
+  //     Skip    Prompt         Option         Help \r
+  //\r
+  gOptionBlockWidth = (CHAR16) ((gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn) / 3) + 1;\r
+  gHelpBlockWidth   = (CHAR16) (gOptionBlockWidth - 1 - LEFT_SKIPPED_COLUMNS);\r
+  gPromptBlockWidth = (CHAR16) (gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * (gOptionBlockWidth - 1) - 1);\r
+\r
+  ConvertStatementToMenu();\r
+\r
   //\r
   // Check whether layout is changed.\r
   //\r