[edk2-devel] [PATCH] MdeModulePkg/DisplayEngineDxe: Fix Help information shadow problem

gechao at greatwall.com.cn gechao at greatwall.com.cn
Mon Dec 28 09:11:41 UTC 2020


From: gechao <gechao at greatwall.com.cn>

Fix residual display problem in help information section with different
length string. When switching between different items, the help inform-
ation part may remain the last displayed help information content.
Example:
    Last: ABCDEFGH, New:  1234567
    Result: 1234567H

Signed-off-by: gechao <gechao at greatwall.com.cn>
---
 .../Universal/DisplayEngineDxe/FormDisplay.c  | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c b/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
index a3898dc2ec..abb4843a73 100644
--- a/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
+++ b/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
@@ -3061,6 +3061,15 @@ UiDisplayMenu (
       //
       if (!MultiHelpPage) {
         for (Index = 0; Index < HelpLine; Index++) {
+          //
+          // Clear whole line first, Clear the last displayed information.
+          //
+          PrintStringAtWithWidth (
+            gStatementDimensions.RightColumn - gHelpBlockWidth,
+            Index + TopRow,
+            gEmptyString,
+            gHelpBlockWidth
+            );
           PrintStringAtWithWidth (
             gStatementDimensions.RightColumn - gHelpBlockWidth,
             Index + TopRow,
@@ -3080,6 +3089,15 @@ UiDisplayMenu (
       } else  {
         if (HelpPageIndex == 0) {
           for (Index = 0; Index < RowCount - HelpBottomLine; Index++) {
+            //
+            // Clear whole line first, Clear the last displayed information.
+            //
+            PrintStringAtWithWidth (
+              gStatementDimensions.RightColumn - gHelpBlockWidth,
+              Index + TopRow,
+              gEmptyString,
+              gHelpBlockWidth
+              );
             PrintStringAtWithWidth (
               gStatementDimensions.RightColumn - gHelpBlockWidth,
               Index + TopRow,
@@ -3090,6 +3108,15 @@ UiDisplayMenu (
         } else {
           for (Index = 0; (Index < RowCount - HelpBottomLine - HelpHeaderLine) &&
               (Index + HelpPageIndex * (RowCount - 2) + 1 < HelpLine); Index++) {
+            //
+            // Clear whole line first, Clear the last displayed information.
+            //
+            PrintStringAtWithWidth (
+              gStatementDimensions.RightColumn - gHelpBlockWidth,
+              Index + TopRow + HelpHeaderLine,
+              gEmptyString,
+              gHelpBlockWidth
+              );
             PrintStringAtWithWidth (
               gStatementDimensions.RightColumn - gHelpBlockWidth,
               Index + TopRow + HelpHeaderLine,
-- 
2.25.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#69488): https://edk2.groups.io/g/devel/message/69488
Mute This Topic: https://groups.io/mt/79282846/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list