diff --git a/PROMS/Volian.Print.Library/Pagination.cs b/PROMS/Volian.Print.Library/Pagination.cs index 5288cc03..99b4f9e8 100644 --- a/PROMS/Volian.Print.Library/Pagination.cs +++ b/PROMS/Volian.Print.Library/Pagination.cs @@ -1337,18 +1337,28 @@ namespace Volian.Print.Library { foreach (int stepLevel in myList.Keys) foreach (float yLoc in myList[stepLevel].Keys) - if (yLocation == yLoc) + { + vlnParagraph myPara = myList[stepLevel][yLoc]; + if (Overlap(myPara, myParaBreak)) if (stepLevel > maxLevel) { - vlnParagraph myPara = myList[stepLevel][yLoc]; //DebugPagination.WriteLine("'MaxBreakLevel',{0},{1},'{2}'", myPara.MyItemInfo.ItemID, stepLevel, myPara.MyItemInfo.ShortPath); //Console.WriteLine("'MaxBreakLevel',{0},{1},'{2}'", myPara.MyItemInfo.ItemID, stepLevel, myPara.MyItemInfo.ShortPath); if (!myPara.HasAncestor(myParaBreak)) maxLevel = stepLevel; } + } return maxLevel; } + private static bool Overlap(vlnParagraph myPara, vlnParagraph myParaBreak) + { + // Fix for B2016-166: Calvert pagination-splitting a Note in AER from its associated step + if (myPara.MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertPagination) + return (myPara.YOffset <= myParaBreak.YOffset && + (myPara.YOffset + myPara.Height) >= myParaBreak.YOffset); + return(myPara.YOffset == myParaBreak.YOffset); + } private bool HasAncestor(vlnParagraph myParaBreak) { if (myParaBreak == MyParent) return true;