diff --git a/IntelFrameworkModulePkg/Universal/SetupBrowserDxe/ProcessOptions.c b/IntelFrameworkModulePkg/Universal/SetupBrowserDxe/ProcessOptions.c index a2dc808346..c3d52897d1 100644 --- a/IntelFrameworkModulePkg/Universal/SetupBrowserDxe/ProcessOptions.c +++ b/IntelFrameworkModulePkg/Universal/SetupBrowserDxe/ProcessOptions.c @@ -341,31 +341,32 @@ ProcessOptions ( // if (!Tag->Suppress && !Tag->GrayOut) { CopyMem (NvRamMap, &Number, MenuOption->ThisTag->StorageWidth); + break; } - break; + } else { + + StringPtr = GetToken (PopUp, MenuOption->Handle); + + CreatePopUp (GetStringWidth (StringPtr) / 2, 3, &NullCharacter, StringPtr, &NullCharacter); + + do { + Status = WaitForKeyStroke (&Key); + + switch (Key.UnicodeChar) { + + case CHAR_CARRIAGE_RETURN: + // + // Since the value can be one byte long or two bytes long, do a CopyMem based on StorageWidth + // + CopyMem (NvRamMap, &Number, MenuOption->ThisTag->StorageWidth); + FreePool (StringPtr); + break; + + default: + break; + } + } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN); } - - StringPtr = GetToken (PopUp, MenuOption->Handle); - - CreatePopUp (GetStringWidth (StringPtr) / 2, 3, &NullCharacter, StringPtr, &NullCharacter); - - do { - Status = WaitForKeyStroke (&Key); - - switch (Key.UnicodeChar) { - - case CHAR_CARRIAGE_RETURN: - // - // Since the value can be one byte long or two bytes long, do a CopyMem based on StorageWidth - // - CopyMem (NvRamMap, &Number, MenuOption->ThisTag->StorageWidth); - FreePool (StringPtr); - break; - - default: - break; - } - } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN); } } diff --git a/IntelFrameworkModulePkg/Universal/SetupBrowserDxe/Ui.c b/IntelFrameworkModulePkg/Universal/SetupBrowserDxe/Ui.c index dd56cfbcf7..c222a72e03 100644 --- a/IntelFrameworkModulePkg/Universal/SetupBrowserDxe/Ui.c +++ b/IntelFrameworkModulePkg/Universal/SetupBrowserDxe/Ui.c @@ -3020,7 +3020,7 @@ Returns: // // After the repaint operation, we should refresh the highlight. // - NewLine = TRUE; + NewLine = TRUE; break; case CfUiNoOperation: