Skip to content

Commit

Permalink
fix #302316, fix #297501 - slurs and fingering
Browse files Browse the repository at this point in the history
When a score, containing a fingering under a slur is loaded, the slur crosses the fingering.
Only after a relayout the slur is drawn higher so it won't intersect the fingering (issue

The root cause of this issue is the shapes of the fingering elements where not available
when the bezier of the slur is calculated. The fingering shapes are calculated after the
slur bezier is calculated. This explains why a relayout will solve the issue, then the
fingering shapes are available. The shapes are calculated during the calculation of the
note shapes but there was no call the fingering layout() method, making the bbox of
the fingering shape invalid and therefor it is not added.

This issue is solved by, in Score::layoutSystemElements(), calling the
Segment::createShapes() when layouting the fingering elements.

This solution also solves #302316 which also requires a relayout after a String Fingering
is added to note under a slur.
  • Loading branch information
njvdberg committed Mar 13, 2020
1 parent 001c34c commit d938fcc
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions libmscore/layout.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3765,6 +3765,7 @@ void Score::layoutSystemElements(System* system, LayoutContext& lc)
}
}
}
s->createShapes();
}
}

Expand Down

0 comments on commit d938fcc

Please sign in to comment.