diff --git a/mscore/scoreview.cpp b/mscore/scoreview.cpp index 7bcc4c32bc07a..c2bd36669d485 100644 --- a/mscore/scoreview.cpp +++ b/mscore/scoreview.cpp @@ -2837,7 +2837,21 @@ void ScoreView::adjustCanvasPosition(const Element* el, bool playBack) m = static_cast(el->parent()->parent())->measure(); else if (el->type() == ElementType::MEASURE || el->type() == ElementType::VBOX) m = static_cast(el); - else + else if (el->isSpannerSegment()) + m = static_cast(el)->spanner()->startMeasure(); + else if (el->isSpanner()) + m = static_cast(el)->startMeasure(); + else { + // attempt to find measure + Element* e = el->parent(); + while (e && e->type() != ElementType::MEASURE) + e = e->parent(); + if (e) + m = static_cast(e); + else + return; + } + if (!m) return; int staffIdx = el->staffIdx();