]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Fix modal form display error.
authorEric Dong <eric.dong@intel.com>
Sat, 28 Sep 2013 04:51:32 +0000 (04:51 +0000)
committerydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 28 Sep 2013 04:51:32 +0000 (04:51 +0000)
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14736 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c

index 8e5b890bf359dfed1e5328253735dc3ae2b480b1..2407c7ea6ad70677813fc7cc4f5bcc336e841a1d 100644 (file)
@@ -279,7 +279,10 @@ GetWidth (
   // For modal form, clean the entire row.\r
   //\r
   if ((gFormData->Attribute & HII_DISPLAY_MODAL) != 0) {\r
-    return (UINT16)(gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - gModalSkipColumn - SCROLL_ARROW_HEIGHT);\r
+    if (AdjustWidth  != NULL) {\r
+      *AdjustWidth = LEFT_SKIPPED_COLUMNS;\r
+    }\r
+    return (UINT16)(gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * (gModalSkipColumn + LEFT_SKIPPED_COLUMNS));\r
   }\r
 \r
   Size = 0;\r
@@ -1999,9 +2002,12 @@ UiDisplayMenu (
         if (!ValueIsScroll (TRUE, TopOfScreen)) {\r
           UpArrow = TRUE;\r
         }\r
-        \r
-        PrintStringAtWithWidth(gStatementDimensions.LeftColumn, TopRow - 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn);\r
 \r
+        if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {\r
+          PrintStringAtWithWidth(gStatementDimensions.LeftColumn + gModalSkipColumn, TopRow - 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * gModalSkipColumn);\r
+        } else {\r
+          PrintStringAtWithWidth(gStatementDimensions.LeftColumn, TopRow - 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn);\r
+        }\r
         if (UpArrow) {\r
           gST->ConOut->SetAttribute (gST->ConOut, GetArrowColor ());\r
           PrintCharAt (\r
@@ -2036,14 +2042,24 @@ UiDisplayMenu (
             SavedMenuOption = MenuOption;\r
             SkipHighLight   = TRUE;\r
           }\r
-          \r
-          DisplayOneMenu (MenuOption, \r
-                          ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) ? LEFT_SKIPPED_COLUMNS + gModalSkipColumn : LEFT_SKIPPED_COLUMNS,\r
-                          gStatementDimensions.LeftColumn, \r
-                          Link == TopOfScreen ? SkipValue : 0, \r
-                          BottomRow,\r
-                          Link == NewPos && IsSelectable(MenuOption)\r
-                          );\r
+\r
+          if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {\r
+            DisplayOneMenu (MenuOption, \r
+                            LEFT_SKIPPED_COLUMNS,\r
+                            gStatementDimensions.LeftColumn + gModalSkipColumn, \r
+                            Link == TopOfScreen ? SkipValue : 0, \r
+                            BottomRow,\r
+                            Link == NewPos && IsSelectable(MenuOption)\r
+                            );\r
+          } else {\r
+            DisplayOneMenu (MenuOption, \r
+                            LEFT_SKIPPED_COLUMNS,\r
+                            gStatementDimensions.LeftColumn, \r
+                            Link == TopOfScreen ? SkipValue : 0, \r
+                            BottomRow,\r
+                            Link == NewPos && IsSelectable(MenuOption)\r
+                            );         \r
+          }\r
 \r
           //\r
           // 3. Update the row info which will be used by next menu.\r
@@ -2069,7 +2085,7 @@ UiDisplayMenu (
         //\r
         while (Row <= BottomRow) {\r
           if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {\r
-            PrintStringAtWithWidth(gStatementDimensions.LeftColumn, Row++, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn);\r
+            PrintStringAtWithWidth(gStatementDimensions.LeftColumn + gModalSkipColumn, Row++, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * gModalSkipColumn);\r
           } else {\r
             PrintStringAtWithWidth(gStatementDimensions.LeftColumn, Row++, L"", gStatementDimensions.RightColumn - gHelpBlockWidth - gStatementDimensions.LeftColumn);\r
           }\r
@@ -2078,8 +2094,11 @@ UiDisplayMenu (
         //\r
         // 4. Print the down arrow row.\r
         //\r
-        PrintStringAtWithWidth(gStatementDimensions.LeftColumn, BottomRow + 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn);\r
-       \r
+        if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {\r
+          PrintStringAtWithWidth(gStatementDimensions.LeftColumn + gModalSkipColumn, BottomRow + 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 *  + gModalSkipColumn);\r
+        } else {\r
+          PrintStringAtWithWidth(gStatementDimensions.LeftColumn, BottomRow + 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn);\r
+        }\r
         if (DownArrow) {\r
           gST->ConOut->SetAttribute (gST->ConOut, GetArrowColor ());\r
           PrintCharAt (\r