diff --git a/libmscore/measure.cpp b/libmscore/measure.cpp index 9118189e1a6f..6aab88e53db6 100644 --- a/libmscore/measure.cpp +++ b/libmscore/measure.cpp @@ -3254,10 +3254,14 @@ void Measure::layoutX(qreal stretch) } } Segment* ns; - for (ns = s->next(); ns; ns = ns->next()) { - if (ns->element(track)) - break; + if (t == REPEAT_MEASURE) { + for (ns = s->next(); ns; ns = ns->next()) { + if (ns->element(track)) + break; + } } + else + ns = s->next(); if (ns) { if (ns->segmentType() == Segment::SegEndBarLine) x2 = ns->x(); diff --git a/libmscore/rest.cpp b/libmscore/rest.cpp index 43852584e207..47a0c3678172 100644 --- a/libmscore/rest.cpp +++ b/libmscore/rest.cpp @@ -74,6 +74,9 @@ void Rest::draw(QPainter* painter) const painter->setPen(curColor()); if (parent() && measure() && measure()->multiMeasure()) { + //only on voice 1 + if((track() % VOICES) != 0) + return; Measure* m = measure(); int n = m->multiMeasure(); qreal pw = _spatium * .7; diff --git a/mscore/scoreview.cpp b/mscore/scoreview.cpp index 5be77641976f..41b0ad996c70 100644 --- a/mscore/scoreview.cpp +++ b/mscore/scoreview.cpp @@ -4395,10 +4395,12 @@ void ScoreView::changeVoice(int voice) is->setTrack(track); if (is->noteEntryMode) { - is->setSegment(is->segment()->measure()->first(Segment::SegChordRest)); - score()->setUpdateAll(true); - score()->end(); - mscore->setPos(is->segment()->tick()); + if (is->segment()) { // can be null for eg repeatMeasure + is->setSegment(is->segment()->measure()->first(Segment::SegChordRest)); + score()->setUpdateAll(true); + score()->end(); + mscore->setPos(is->segment()->tick()); + } } else { score()->startCmd();