Diagonal hairpins sometimes cause crash + steal selection points

• Feb 13, 2021 - 22:59

1) Diagonal line + dragging the end tip up and down for a moment I get crashes in MS 3.6.2. Seems kind of haphazard...

2) When it's not crashing, the main concern is having a long length with for example a 45 degree angle, the mouse-selection mechanism selects that hairpin as if it had a big rectangluar box around it for mouse press events: anything within that rectangle when clicked ends up having the hairpin still selected. I.e. when normally a non-element is selected, unselection occurs, this doesn't happen. This seems like pretty bad "collision detection" based on some bbox code for diagonal lines. I don't usually use angular hairpins, so it's rare, but when they are present it'd be nice if the current behavior were more appropriate.

It gets way worse if you do cross-staff notation and have a diagonal hairpin.

Here's a demonstration and supporting file (staff text auto-places also above this "bbox"):

boundingbox_diagonalhairpin .gif

And here's a crash:

crash.gif

For the crash, I only have to make the hairpin diagonal.... and then attempt to drag upward the end node to a certain degree and blam...MS crashes. This sort of thing should be safeguarded against...

Attachment Size
Selection_of_Diagonal_Haipin.mscz 11.08 KB

Comments

I can replicate this up to a certain point.

  1. Yes, in your score I can't select the first treble measure without dragging the hairpin out of the way. but I can select any of the notes.
  2. I can drag the right end up and the program crashes.

But it only crashes because it bumps into your text box. If the title box and you added text boxes are not there, I can't get a crash. This could be considered poor collision detection. I get it. But is easily avoidable

In reply to by bobjp

Thanks for further specification/verification. Could be worse though if there were text-frames (instead of a title vertical frame) right above the musical system, as those sometimes are close to the music system. Didn't test if those cause issues, but if they do, they won't be so easily avoidable as you make it out to be as compared with a vertical frame that is a large portion away (like 15sp-20sp).

P.S. The mention of collision detection was in reference to the mouse pointer and the invisible "box" for the hairpin related to not being able to select the measure or just attempt to "click out of" the selection of the hairpin within that area as normally is the case with other elements.

In reply to by bobjp

Without actually debugging, I can guess what's happening. The code wants to change anchor points if it finds something to attach to. It finds the frame and says, hey, here's a good system, let me attach to something here, then chokes where it realize there is nothing there to attach to.

Lots of people starting to express interest in MuseScore via Google Summer of Code, this would potentially be a good bug to fix to introduce oneself to the code...

Do you still have an unanswered question? Please log in first to post your question.