diff --git a/exec/load/dd_lightbar_menu.js b/exec/load/dd_lightbar_menu.js index f46e304949c87416dc2335d91c68c6490f1b82ee..704013e28a06c4c285014cd62fbc701d75c90efe 100644 --- a/exec/load/dd_lightbar_menu.js +++ b/exec/load/dd_lightbar_menu.js @@ -3134,8 +3134,19 @@ function DDLightbarMenu_UpdateScrollbar(pNewStartRow, pOldStartRow, pNumSolidBlo // then the solid block section has moved down; if the diff is negative, the // solid block section has moved up. var solidBlockStartRowDiff = pNewStartRow - pOldStartRow; + // Calculate the 'old' last row & new last row, but don't let them go over + // the bottom row of the menu var oldLastRow = pOldStartRow + numSolidBlocks - 1; + const maxY = this.pos.y + this.size.height - 1; + if (oldLastRow > maxY) + oldLastRow = maxY; + else if (oldLastRow < this.pos.y) + oldLastRow = this.pos.y; var newLastRow = pNewStartRow + numSolidBlocks - 1; + if (newLastRow > maxY) + newLastRow = maxY; + else if (newLastRow < this.pos.y) + newLastRow = this.pos.y; if (solidBlockStartRowDiff > 0) { // The solid block section has moved down