fix #287871: volta line not drawn before start repeat
This commit is contained in:
parent
fa50dff518
commit
d2278d6742
1 changed files with 5 additions and 5 deletions
|
@ -668,15 +668,15 @@ QPointF SLine::linePos(Grip grip, System** sys) const
|
||||||
while (seg && seg->segmentType() != SegmentType::EndBarLine)
|
while (seg && seg->segmentType() != SegmentType::EndBarLine)
|
||||||
seg = seg->prev();
|
seg = seg->prev();
|
||||||
if (!seg || !seg->enabled()) {
|
if (!seg || !seg->enabled()) {
|
||||||
// no end bar line; look for BeginBarLine of next measure
|
// no end bar line; look for BeginBarLine or StartRepeatBarLine of next measure
|
||||||
Measure* nm = m->nextMeasure();
|
Measure* nm = m->nextMeasure();
|
||||||
if (nm->system() == m->system())
|
if (nm->system() == m->system())
|
||||||
seg = nm->first(SegmentType::BeginBarLine);
|
seg = nm->first(SegmentType::BeginBarLine|SegmentType::StartRepeatBarLine);
|
||||||
}
|
}
|
||||||
qreal mwidth = seg ? seg->x() : m->bbox().right();
|
qreal mwidth = seg && seg->measure() == m ? seg->x() : m->bbox().right();
|
||||||
x = m->pos().x() + mwidth;
|
x = m->pos().x() + mwidth;
|
||||||
// align to barline
|
// align to barline
|
||||||
if (seg && seg->isEndBarLineType()) {
|
if (seg && (seg->segmentType() & SegmentType::BarLineType)) {
|
||||||
Element* e = seg->element(0);
|
Element* e = seg->element(0);
|
||||||
if (e && e->type() == ElementType::BAR_LINE) {
|
if (e && e->type() == ElementType::BAR_LINE) {
|
||||||
BarLineType blt = toBarLine(e)->barLineType();
|
BarLineType blt = toBarLine(e)->barLineType();
|
||||||
|
|
Loading…
Reference in a new issue