diff --git a/src/engraving/rendering/score/slurtielayout.cpp b/src/engraving/rendering/score/slurtielayout.cpp index 0c65841c0b008..4596531e91005 100644 --- a/src/engraving/rendering/score/slurtielayout.cpp +++ b/src/engraving/rendering/score/slurtielayout.cpp @@ -1852,31 +1852,30 @@ void SlurTieLayout::setPartialTieEndPos(PartialTie* item, SlurTiePos& sPos) const Segment* seg = chord->segment(); const Measure* measure = seg->measure(); const System* system = measure->system(); - double width = item->style().styleS(Sid::minHangingTieLength).val() * item->spatium(); if (seg->measure()->isFirstInSystem() && !outgoing) { sPos.p1 = PointF((system ? system->firstNoteRestSegmentX(true) : 0), sPos.p2.y()); return; } - const Segment* adjSeg = outgoing ? seg->next() : seg->prev(); + const Segment* adjSeg = outgoing ? seg->next1() : seg->prev1(); while (adjSeg && (!adjSeg->isActive() || !adjSeg->enabled())) { - adjSeg = outgoing ? seg->next() : seg->prev(); + adjSeg = outgoing ? seg->next1() : seg->prev1(); } + double widthToSegment = 0.0; if (adjSeg) { EngravingItem* element = adjSeg->element(staff2track(item->vStaffIdx())); const double elementWidth = element ? element->width() : 0.0; - double widthToSegment = outgoing ? adjSeg->xPosInSystemCoords() - sPos.p1.x() : sPos.p2.x() - - (adjSeg->xPosInSystemCoords() + elementWidth); + widthToSegment = outgoing ? adjSeg->xPosInSystemCoords() - sPos.p1.x() : sPos.p2.x() + - (adjSeg->xPosInSystemCoords() + elementWidth); widthToSegment -= 0.25 * item->spatium(); - width = std::max(widthToSegment, width); } if (outgoing) { - sPos.p2 = PointF(sPos.p1.x() + width, sPos.p1.y()); + sPos.p2 = PointF(sPos.p1.x() + widthToSegment, sPos.p1.y()); } else { - sPos.p1 = PointF(sPos.p2.x() - width, sPos.p2.y()); + sPos.p1 = PointF(sPos.p2.x() - widthToSegment, sPos.p2.y()); } } diff --git a/vtest/scores/partialTieEndAlignment.mscz b/vtest/scores/partialTieEndAlignment.mscz new file mode 100644 index 0000000000000..94912e2340d9e Binary files /dev/null and b/vtest/scores/partialTieEndAlignment.mscz differ