arpeggio boundary box for auto-layout collision detection seems incorrect
Seems like a layout bug with the arpeggio boundary box calculation, because auto-layout collision detection is only working when this preceding rest is near the top of the arpeggio...see video:
Attachment | Size |
---|---|
arpeggio-layout-bug.mscz | 4.61 KB |
Comments
True, see also #285690: Arpeggio symbols: autoplace min. distance not working correctly and https://musescore.org/en/node/275962#comment-903135
hmm...wow so there are a lot of issues with arpeggios.
I'm not sure this particular issue is really too difficult...just seems like the boundary box mistakenly just assumes the minimum default height of a wiggly-arrow symbol for the boundary box symbol, but fails to take into account the actual height of the arpeggio. So maybe really need to use Arpeggio's _height in setbbox in Arpeggio::layout().
I'm currently steeping through the code seeting a breakpoint in Arpeggio::layout(), and I notice the following:
And I'm wondering why the boundary box uses symBbox of an vector of 4 wigglyArpeggioatoUp symbols. I almost think should just use just one symbol (maybe of arrowheadBlackDown), and then add the currently-laid out height to form the boundary box. But it has been so long I've looked at MuseScore code that I'm probably totally off-track.
In reply to hmm...wow so there are a lot… by ericfontainejazz
oh, wait...I think I'm looking at the wrong ArpeggioType case. Maybe I should be looking at the ArpeggioType::UP_STRAIGHT and DOWN_STRAIGHT
In reply to oh, wait...I think I'm… by ericfontainejazz
well wait...I think I see how the code is working...symbolLine creates a string of symbols according to teh Arpeggio's 'w' (which is really it's height).
In reply to well wait...I think I see… by ericfontainejazz
somehow putting a breakpoint there and triggering a relayout I see that symbols string is 7-symbols long which would be correct, but sometimes it is only 1 symbol long...which seems suspicious.
In reply to hmm...wow so there are a lot… by ericfontainejazz
As per my comment in the issue, I think this might have been partially deliberate, to allow cross staff arpeggios to work - otherwise they'd force the staves further apart. Probably there is a better solution to that, but it's not especially obviousl
In reply to As per my comment in the… by Marc Sabatella
ok, I'm not going to try to fix it, seems a bit too complicated for me now.