diff options
Diffstat (limited to 'MdeModulePkg/Universal')
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/Ui.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c index 264bee6465..8b7344f42a 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c @@ -2696,14 +2696,19 @@ UiDisplayMenu ( TopOfScreen = NewPos;
}
- Difference = MoveToNextStatement (TRUE, &NewPos);
- if ((INTN) MenuOption->Row - (INTN) DistanceValue < (INTN) TopRow) {
+ Difference = MoveToNextStatement (TRUE, &NewPos);
+ PreviousMenuOption = MENU_OPTION_FROM_LINK (NewPos);
+ DistanceValue += PreviousMenuOption->Skip;
+
+ if ((INTN) MenuOption->Row - (INTN) DistanceValue < (INTN) TopRow) {
if (Difference > 0) {
//
// Previous focus MenuOption is above the TopOfScreen, so we need to scroll
//
TopOfScreen = NewPos;
Repaint = TRUE;
+ SkipValue = 0;
+ OldSkipValue = 0;
}
}
if (Difference < 0) {
|