fix #92331: following chord deleted after voice change #2347
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See my comments in https://musescore.org/en/node/92331#comment-416681. I might be confused about the actual purpose of expandVoice() and the various makeGap functions, so I am trying to be explicit here in my comments. There the cause of the bug is that expandVoice() is supposed to fill a gap at the current segment as well as preceding the current segment, and that makeGapVoice() is correct to assume there isn't already a gap present. expandVoice() was sometimes filling a gap at the current segment, sometimes not - depending on whethere there was also a gap preceding the segment or not. I have taken out the two lines that prevented expandVoice() from filling a gap at the current segment in the case where there was no gap preceding this segment, and this fixes the reported bug. So far, I don't see any ill effects.
I have also added comments to make the function of expandVoice() more explicit. Again, these are based on my assumptions about the purpose of the function.