Skip to content

Commit ce513df

Browse files
committed
Extend line to snapped tempo text
1 parent 0f2b3e4 commit ce513df

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/engraving/rendering/score/tlayout.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3011,8 +3011,6 @@ void TLayout::layoutGradualTempoChangeSegment(GradualTempoChangeSegment* item, L
30113011

30123012
ldata->disconnectSnappedItems();
30133013

3014-
layoutTextLineBaseSegment(item, ctx);
3015-
30163014
GradualTempoChangeSegment* tempoChangeSegmentSnappedBefore = item->findElementToSnapBefore();
30173015
if (tempoChangeSegmentSnappedBefore) {
30183016
ldata->connectItemSnappedBefore(tempoChangeSegmentSnappedBefore);
@@ -3021,8 +3019,20 @@ void TLayout::layoutGradualTempoChangeSegment(GradualTempoChangeSegment* item, L
30213019
TempoText* tempoTextSnappedAfter = item->findElementToSnapAfter();
30223020
if (tempoTextSnappedAfter) {
30233021
ldata->connectItemSnappedAfter(tempoTextSnappedAfter);
3022+
3023+
if (tempoTextSnappedAfter->findAncestor(ElementType::SYSTEM) == item->system()) {
3024+
double xItemPos = tempoTextSnappedAfter->pageX() - item->system()->pageX();
3025+
double itemLeftEdge = xItemPos + tempoTextSnappedAfter->ldata()->bbox().left();
3026+
double padding = tempoTextSnappedAfter->fontMetrics().xHeight();
3027+
double maxTempoLineEnd = itemLeftEdge - padding;
3028+
3029+
double xEndDiff = maxTempoLineEnd - (item->pos().x() + item->pos2().x());
3030+
item->rxpos2() += xEndDiff;
3031+
}
30243032
}
30253033

3034+
layoutTextLineBaseSegment(item, ctx);
3035+
30263036
if (item->isStyled(Pid::OFFSET)) {
30273037
item->roffset() = item->tempoChange()->propertyDefault(Pid::OFFSET).value<PointF>();
30283038
}

0 commit comments

Comments
 (0)