No courtesy key, and no naturals, on key change with frame and multimeasure rests

• Jun 23, 2018 - 00:10
Reported version
2.1
Type
Functional
Severity
S3 - Major
Status
closed
Regression
No
Workaround
No
Project

Discovered this testing a fix for #272691: When changing to C-Major/a-minor after multimeasure rest, naturals are not shown/saved and #267602: Measure shifts back and forth with each layout. Found out it's been present since 2.1 at least, but since it's not good, and it deals with some of the same code I'm working on for those issues, I'm looking at this too.

1) load attached file, which contains key changes with horizontal frames right before them, and mmrests enabled.

Result: no courtesy keysig appears at the end of the mmrest before the frame. Not a huge problem for the first key change, but a huge deal for the second, since the courtesy is where the naturals should have gone, meaning we don't see the change to C major at all.

naturals.png

The code I'm currently dealing with is what controls whether naturals appear, and they don't if the code thinks a courtesy should be present (since you can't depend on it having been generated already at this stage in layout). In this case, there should be a courtesy, so naturals are not included. It would be easy to simply change my code to work around this bug and include the naturals in this case. But since the courtesies do appear if you toggle mmrests on, it seems they should here as well.

Note that without the frames, the bug exists in some versions but not others. That's what I'm fixing in #272691: When changing to C-Major/a-minor after multimeasure rest, naturals are not shown/saved.

Attachment Size
naturals.mscx 11.26 KB

Comments