merge many 3.x improvements
[alioth/musescore.git] / debian / patches / upstream / fix-accidental-paren-pos.diff
1 Description: honour symbol advance width from font when drawing accidentals
2  more specifically, accidentals in parenthesēs (or other enclosing
3  symbols) now have the advance width of the enclosing glyph and the
4  glyph from the accidental itself honoured fixing asymmetric render
5  of a parenthesised ♭
6 Author: mirabilos <m@mirbsd.org>
7 Forwarded: https://github.com/musescore/MuseScore/pull/6759
8 Applied-Upstream: v3.6, commit:1d81510cdaa67d8787067c0774674bcbaedbb11c
9
10 --- a/libmscore/accidental.cpp
11 +++ b/libmscore/accidental.cpp
12 @@ -331,22 +331,23 @@ void Accidental::layout()
13        if (_small)
14              m *= score()->styleD(StyleIdx::smallNoteMag);
15        setMag(m);
16 +      qreal x = 0;
17  
18        m = magS();
19        if (_hasBracket) {
20              SymElement e(SymId::accidentalParensLeft, 0.0);
21              el.append(e);
22              r |= symBbox(SymId::accidentalParensLeft);
23 +            x += symAdvance(SymId::accidentalParensLeft);
24              }
25  
26        SymId s = symbol();
27 -      qreal x = r.x()+r.width();
28        SymElement e(s, x);
29        el.append(e);
30        r |= symBbox(s).translated(x, 0.0);
31  
32        if (_hasBracket) {
33 -            x = r.x()+r.width();
34 +            x += symAdvance(s);
35              SymElement e(SymId::accidentalParensRight, x);
36              el.append(e);
37              r |= symBbox(SymId::accidentalParensRight).translated(x, 0.0);