"Align baseline of text to reference point" in vertical frame is broken

• Jun 17, 2020 - 10:00
Reported version
3.0
Type
Functional
Frequency
Few
Severity
S3 - Major
Reproducibility
Always
Status
active
Regression
No
Workaround
Yes
Project

OS: Windows 10 (10.0), Arch.: x86_64,
MuseScore version (64-bit): 3.5.0.12237, revision: b5add95

  1. Create a Vertical Frame, insert a Titie, Lyricist and Composer.
  2. Ensure that the text for Lyricist has descenders (letters like g, p, y).
    Ensure that the text for Composer has no descenders.
  3. Notice that the Lyricist text is slightly misaligned, because the descenders have pushed the text higher.
  4. Now select the Lyricist text and click the icon for "Align baseline of text with reference point"

Expected result: the Lyricist text should settle downwards so that the descenders are slightly below the frame edge
Actual result: the Lyricist text move substantially upwards, as if the "reference point" is completely random:
MS 3.5 beta - Align property of Lyricist and Composer.png


Comments

I’ve seen this in general “text” items in vertical frames as well, not just in the top “title/composer/etc.” frame.

The text alignment options are being overloaded, being used to set the reference point within the vertical frame as well as the reference point in the text.

Top: “Align top edge of text to reference point” - aligns top of text’s bounding box (varies with caps, parens, etc.) to the TOP of the vertical frame.
Center: “Center text vertical to reference point” - aligns center of text’s bounding box (?) to the CENTER of the vertical frame
Bottom: “Align bottom edge of text to reference point” - aligns bottom of text’s bounding box (will vary with descenders, commas, etc.) to the BOTTOM of vertical frame
Baseline: “Align baseline of text to reference point” - aligns the baseline (“bottom” not counting descenders, etc. – what we’d usually think of as the consistent “more or less bottom” of the text!) to the CENTER (?!) of the vertical frame. A workaround here could be to use “baseline” with a Y offset to bring the lyricist and composer lines low enough, but they won’t perfectly follow the vertical frame’s size if it’s changed.
Another non-intuitive thing about the baseline option is that it uses the baseline of the FIRST line of multi-line text items, where using the last line might be the more common case for “bottom” items like the lyricist and composer.

The UI needs better controls for all this. Hopefully I’ll think of a coherent suggestion and submit a feature request… and if someone beat me to it and did it better… good!