Skip to content

Commit 7991526

Browse files
Merge pull request #34764 from mike-spa/fixTrillBugWithGraceNote
Fix trill line bug when ending on grace note at system break
2 parents d67e459 + f4fc296 commit 7991526

1 file changed

Lines changed: 11 additions & 15 deletions

File tree

src/engraving/dom/trill.cpp

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -256,13 +256,11 @@ PointF Trill::trillLinePos(const SLine* line, Grip grip, System** system)
256256
return PointF(x, 0.0);
257257
}
258258

259-
Segment* graceNoteSeg = segment->preAppendedItem(line->track2()) ? segment : nullptr;
260259
Segment* clefSeg = segment->isClefType() ? segment : nullptr;
261260
Fraction curTick = segment->tick();
262261
while (true) {
263262
Segment* prevSeg = mmRest ? segment->prev1MM() : segment->prev1();
264263
if (prevSeg && prevSeg->tick() == curTick) {
265-
graceNoteSeg = prevSeg->preAppendedItem(line->track2()) ? prevSeg : graceNoteSeg;
266264
clefSeg = prevSeg->isClefType() ? prevSeg : clefSeg;
267265
segment = prevSeg;
268266
} else {
@@ -282,19 +280,17 @@ PointF Trill::trillLinePos(const SLine* line, Grip grip, System** system)
282280
}
283281

284282
// Stop line before grace notes
285-
if (graceNoteSeg) {
286-
const EngravingItem* preAppendedItem = graceNoteSeg->preAppendedItem(line->track2());
287-
if (preAppendedItem && preAppendedItem->isGraceNotesGroup()) {
288-
// get x position of leftmost grace note
289-
const Chord* leftMostGraceChord = nullptr;
290-
const GraceNotesGroup* graceGroup = toGraceNotesGroup(preAppendedItem);
291-
for (const Chord* graceChord : *graceGroup) {
292-
leftMostGraceChord = leftMostGraceChord
293-
&& leftMostGraceChord->x() < graceChord->x() ? leftMostGraceChord : graceChord;
294-
}
295-
if (leftMostGraceChord) {
296-
graceOffset = segment->pageX() - leftMostGraceChord->pageX();
297-
}
283+
if (const EngravingItem* preAppendedItem = segment->preAppendedItem(line->track2());
284+
preAppendedItem&& preAppendedItem->isGraceNotesGroup()) {
285+
// get x position of leftmost grace note
286+
const Chord* leftMostGraceChord = nullptr;
287+
const GraceNotesGroup* graceGroup = toGraceNotesGroup(preAppendedItem);
288+
for (const Chord* graceChord : *graceGroup) {
289+
leftMostGraceChord = leftMostGraceChord
290+
&& leftMostGraceChord->x() < graceChord->x() ? leftMostGraceChord : graceChord;
291+
}
292+
if (leftMostGraceChord) {
293+
graceOffset = segment->pageX() - leftMostGraceChord->pageX();
298294
}
299295
}
300296

0 commit comments

Comments
 (0)