Staff text unexpectedly repositions when "Set to style" is pressed for different element
Reported version
3.0
Priority
P0 - Critical
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
No
Workaround
No
Project
OS: Windows 10 (10.0), Arch.: x86_64, MuseScore version (64-bit): 3.0.0.4725, revision: d32f837 (edited)
Open the attached score (created in 2.x) and take the reset. Notice the staff text in measure 1, custom-positioned below the treble 8vb staff.
- Select the dynamic in measure 9 and move it forward with the horizontal offset in the Inspector.
- Press the "Reset to style" button.
Expected result: Only the position of dynamics should change.
Actual result: The staff text in measure 1 is repositioned above the 8vb treble staff.
Attachment | Size |
---|---|
chansonette_2.x.mscz | 32.94 KB |
Fix version
3.0.1
Comments
I cannot reproduce with a build from today or even with the last beta, which is older than your build. Is it possible there is a step missing in your description?
In reply to I cannot reproduce with a… by Marc Sabatella
The instructions are correct. Also, after carrying out the above steps, UNDO does not restore the text to its original position below the staff. So, you have to reload the score to see it happen again.
Jojo, you are able to reproduce and are working on a fix? I still can't reproduce. geetar, please try again with the latest nightly.
No, I'm not, just changed from open issues ⇒ active
Oops
OS: Windows 10 (10.0), Arch.: x86_64, MuseScore version (64-bit): 3.0.0.4744, revision: 36e6246
Still the same result with this nightly—and the position of the staff text in question doesn't revert on UNDO. Other changes to the score can also lead to the staff text unexpectedly shifting: e.g. In "Style > Beams", press the "Beam distance" up arrow once.
P.S. Has "Open issues" been included by mistake as an option in the user dropdown menu? See #279853: Remove "Open issues" option from "Status" in user posts.
Open issues is a mistake, yes.
Until a developer is able to reproduce the issue, we still need information, so please do not keep changing the status field. And I remain unable to reproduce it in a current build. The steps seem clear enough that I cannot guess what you might be doing differently than I, but it fails to fail for me. Can you create a screenshot video?
FWIW, now it reproduces for me. I can also reproduce a similar scenario from scratch:
1) empty score
2) click first measure rest
3) Ctrl+E to add expression text
4) enter some text, press Esc
5) Format / Page Settings
6) change staff space
7) OK
Result: expression text jumps above. In fact, I can also reproduce by replacing steps 5-6 with just about anything that forces a full relayout. But, if I select the expression text and press "X" twice, this seems to lock in the position. My guess is we are failing to mark the property unstyled.
Also, expression text entered from the palette works fine. So I think I finally have something of a handle on this:
OS: Windows 10 (10.0), Arch.: x86_64, MuseScore version (64-bit): 3.0.0.4839, revision: cf1f5ce
Sorry, there was a mistake in step 2 of the original instructions:
Expected result: Only the position of dynamics should change.
Actual result: The staff text in measure 1 is repositioned above the 8vb treble staff.
In reply to Sorry, there was a mistake… by geetar
Indeed, that was how I was finally able to reproduce. It's actually anything that triggers a full score relayout I think.
Playing with the code, the issue is definitely about not setting the UNSTYLED flag, and the fix is as simple. Similiar issue for lines (hairpins etc) but unfortunately same fix doesn't quite work because of confusion between the "segments" of the line and line itself. Probably solved through use of the "property delegate", but this is new to me and I haven't taken the time to understand this code fully yet.
So, I think I can fix it, but... it seems we support the ability to have some segments of a single spanner above, others below, and this messes up the automatic determination of placement on import, as the placement property is global to the whole spanner. So this whole clever scheme we have where spanners that have been manually adjusted to the opposite side of the staff get marked with an appropriate placement, we can really only do that if all segments are on the same side of the staff. It might make sense to only enable this placement for spanners of a single segment. But in any case, we can't have different segments with different placements - at least, that doesn't work currently.
https://github.com/musescore/MuseScore/pull/4551
FWIW, I did manage to get it so a spanner in which different segments have different placements (eg, a hairpin that starts on one system and continues onto another, with the portion on one system positioned above and the other positioned below) works. If you don't take the reset, anyhow.
Fixed in branch master, commit a19355f785
fix #281312, fix #280609, fix #280400: loss of placement info after 2.x import
Automatically closed -- issue fixed for 2 weeks with no activity.