Skip to content

Commit

Permalink
Merge pull request musescore#18501 from mike-spa/fixExpressionSnappin…
Browse files Browse the repository at this point in the history
…gAboveStaff

Fix expression snapping above staff
  • Loading branch information
RomanPudashkin committed Jul 10, 2023
2 parents 1534c16 + b47b92f commit c543239
Show file tree
Hide file tree
Showing 7 changed files with 14 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/engraving/layout/v0/tlayout.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2693,8 +2693,10 @@ void TLayout::layout(HairpinSegment* item, LayoutContext& ctx)
}
if (ed->ipos().y() != ny) {
ed->setPosY(ny);
if (ed->snappedExpression()) {
ed->snappedExpression()->setPosY(ny);
Expression* snappedExpression = ed->snappedExpression();
if (snappedExpression) {
double yOffsetDiff = snappedExpression->offset().y() - ed->offset().y();
snappedExpression->setPosY(ny - yOffsetDiff);
}
if (ed->addToSkyline()) {
Segment* s = ed->segment();
Expand Down
2 changes: 2 additions & 0 deletions src/engraving/libmscore/textbase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2766,6 +2766,8 @@ Sid TextBase::offsetSid() const
switch (textStyleType()) {
case TextStyleType::DYNAMICS:
return above ? Sid::dynamicsPosAbove : Sid::dynamicsPosBelow;
case TextStyleType::EXPRESSION:
return above ? Sid::expressionPosAbove : Sid::expressionPosBelow;
case TextStyleType::LYRICS_ODD:
case TextStyleType::LYRICS_EVEN:
return above ? Sid::lyricsPosAbove : Sid::lyricsPosBelow;
Expand Down
2 changes: 2 additions & 0 deletions src/engraving/style/styledef.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -921,6 +921,8 @@ const std::array<StyleDef::StyleValue, size_t(Sid::STYLES)> StyleDef::styleValue
{ Sid::expressionAlign, "expressionAlign", Align(AlignH::LEFT, AlignV::BASELINE) },
{ Sid::expressionPlacement, "expressionPlacement", PlacementV::BELOW },
{ Sid::expressionOffset, "expressionOffset", PointF(.0, 2.5) },
{ Sid::expressionPosAbove, "expressionPosAbove", PointF(.0, -1.5) },
{ Sid::expressionPosBelow, "expressionPosBelow", PointF(.0, 2.5) },
{ Sid::expressionFrameType, "expressionFrameType", int(FrameType::NO_FRAME) },
{ Sid::expressionFramePadding, "expressionFramePadding", 0.2 },
{ Sid::expressionFrameWidth, "expressionFrameWidth", 0.1 },
Expand Down
2 changes: 2 additions & 0 deletions src/engraving/style/styledef.h
Original file line number Diff line number Diff line change
Expand Up @@ -930,6 +930,8 @@ enum class Sid {
expressionAlign,
expressionPlacement,
expressionOffset,
expressionPosAbove,
expressionPosBelow,
expressionFrameType,
expressionFramePadding,
expressionFrameWidth,
Expand Down
2 changes: 2 additions & 0 deletions src/engraving/tests/compat206_data/textstyles-ref.mscx
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,8 @@
<voice>
<Expression>
<placement>above</placement>
<snapToDynamics>0</snapToDynamics>
<offset x="0" y="3.5"/>
<text>technique</text>
</Expression>
<Rest>
Expand Down
2 changes: 2 additions & 0 deletions src/engraving/tests/expression_data/expression-1-ref.mscx
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,8 @@
<voice>
<Expression>
<placement>above</placement>
<snapToDynamics>0</snapToDynamics>
<offset x="0" y="2.5"/>
<text>expr text</text>
</Expression>
<Chord>
Expand Down
Binary file added vtest/scores/expression-2.mscz
Binary file not shown.

0 comments on commit c543239

Please sign in to comment.