Manual fingering placement made with Inspector changes after layout

• Jul 23, 2020 - 15:38
Reported version
3.4
Type
Functional
Frequency
Once
Severity
S4 - Minor
Reproducibility
Always
Status
active
Regression
No
Workaround
Yes
Project

Description

Steps to Reproduce

  1. Open the attached Swan Lake.mscz;
  2. scroll to measure #13;
  3. select the fingering text 4 above the A note;
  4. adjust the Offset Y of the text via Inspector (pay attention to the resulting fingering text position);
  5. select the slur in measure #18 below;
  6. untick the Automatic placement in Inspector.

In fact, instead of steps 5-6 changing the placement of any other object like other fingering texts, slurs, notes makes the fingering text in measure #13 jump.

Expected Behavior

  • The placement of unrelated fingering text 4 in measure #13 stays intact.

Actual Behavior

  • The placement of unrelated fingering text 4 in measure #13 gets changed unexpectedly.

The behavior can be seen in this YouTube Video.

Versions Used

Tried with these versions:

  • OS: Windows 10 (10.0), Arch.: x86_64, MuseScore version (32-bit): 3.5.0.12799, revision: fb3c202
  • OS: Windows 10 (10.0), Arch.: x86_64, MuseScore version (64-bit): 3.4.2.9788, revision: 148e43f
  • OS: macOS 10.14, Arch.: x86_64, MuseScore version (64-bit): 3.4.2.25137, revision: 148e43f

This behavior is consistent across all of them.


Comments

Title Fingering placement changes unexpectedly Manual fingering placement made with Inspector changes after layout
Workaround No Yes

What's actually going on is a little different than it first appears. If you move the fingering by either dragging or moving directly with the mouse, this issue doesn't happen. It only happens when using the Inspector spin box, and it happens because there is a conflict between the numeric value being set for offset and the "minimum distance" required in order for that offset to actually apply the way you want. It's complicated to explain, but this is another aspect of the same basic issue as #293469: Fingering repositions unexpectedly when multiple elements set to same offset using Inspector as #291990: Recently adjusted fingering can shift when changing style setting. I'm leaving this open because in implementing a fix, we will want to make sure we cover all these cases.

For the record, the unchecking of autoplace on the slur isn't specifically relevant; any operation that triggers a relayout of that system will trigger it. The issue is that the position set by the Inspector is not reflecting the true position that should be reflected by the numeric setting. In other words, the position afterwards is actually correct given the setting in the Inspector

I think the specifics of this case probably apply only to fingering, and as such, I would recommend making position adjustments directly with the cursor keys rather than the Inspector for fingering.

Implementation note: I think perhaps the "rebasing" calculation done to compute the correct offset to apply after beginning a manual adjustment is not right for fingering. Probably the offset adjustment does not actually actually need to happen in this case, or at least not the one that happens within rebaseMinDistance().