Bladeren bron

Fix for single staff lined sheets with lyrics

Benjamin Giesinger 7 jaren geleden
bovenliggende
commit
0fe61746c4
1 gewijzigde bestanden met toevoegingen van 11 en 9 verwijderingen
  1. 11 9
      src/MusicalScore/Graphical/MusicSheetCalculator.ts

+ 11 - 9
src/MusicalScore/Graphical/MusicSheetCalculator.ts

@@ -507,16 +507,18 @@ export abstract class MusicSheetCalculator {
                 systemMaxCount += maxPosition;
                 additionalPageLength += maxPosition;
             }
-
-            systemMaxCount -= this.rules.BetweenStaffDistance;
-            let systemIterator: MusicSystem = staffLine.ParentMusicSystem.NextSystem;
-            while (systemIterator !== undefined) {
-                systemIterator.PositionAndShape.RelativePosition.y += systemMaxCount;
-                systemIterator = systemIterator.NextSystem;
-                additionalPageLength += systemMaxCount;
+            // Special care for single line systems
+            if (systemMaxCount !== 0) {
+                systemMaxCount -= this.rules.BetweenStaffDistance;
+                let systemIterator: MusicSystem = staffLine.ParentMusicSystem.NextSystem;
+                while (systemIterator !== undefined) {
+                    systemIterator.PositionAndShape.RelativePosition.y += systemMaxCount;
+                    systemIterator = systemIterator.NextSystem;
+                    additionalPageLength += systemMaxCount;
+                }
+                staffLine.ParentMusicSystem.Parent.PositionAndShape.BorderBottom += additionalPageLength;
+                // Update the instrument labels
             }
-            staffLine.ParentMusicSystem.Parent.PositionAndShape.BorderBottom += additionalPageLength;
-            // Update the instrument labels
             staffLine.ParentMusicSystem.setMusicSystemLabelsYPosition();
             /**
              * HACK END