Regression in curve control point interaction on macOS

Issue #856 closed
JZ created an issue

Build: 1e6d070 Platform: macOS

Valentina crashes when trying to Option-click on a point at the end of a simple curve to drag the control point out.

To reproduce:

1) Load pattern 2) Select curve Spl_A12_A27 3) Press Option (Alt) key 4) Mouse-over point A27, cursor will change shape to 'arrow+hand' 5) Click LMB attempting to drag the control point North

Valentina crashes with 'Bus error: 10'.

The crash seems to be zoom-dependent. It's more likely to crash at wide zoom than at a close-up. It's easier to reproduce at 100%.

Files emailed out-of-band.

<redacted>:~ <redacted>$ /Applications/Valentina.app/Contents/MacOS/Valentina Valentina/patterns/<pattern file name>.val
Checked locale: "en_GB"
DEBUG:Log file /Users/<redacted>/Library/Application Support/Valentina/valentina-pid14706.log was locked.
DEBUG:Clearing old logs
DEBUG:Version: "0.6.0.0a"
DEBUG:Build revision: Git:1e6d070
DEBUG:"Based on Qt 5.10.1 (Clang 9.0 (Apple), 64 bit)"
DEBUG:Built on May 14 2018 at 14:45:37
DEBUG:Command-line arguments: ("/Applications/Valentina.app/Contents/MacOS/Valentina", "Valentina/patterns/<pattern file name>.val")
DEBUG:Process ID: 14706
DEBUG:Checked locale: "en_US"
DEBUG:Initialization property browser.
DEBUG:Initialization groups dock.
DEBUG:Can't get tag Groups.
DEBUG:Updating recent file actions.
DEBUG:Autosaving each 1 minutes.
DEBUG:Reading settings.
DEBUG:Set current name to ""
DEBUG:Reopen files after crash.
DEBUG:Loading new file Valentina/patterns/<pattern file name>.val.
DEBUG:Loking file
DEBUG:Pattern file /Users/<redacted>/Valentina/patterns/<pattern file name>.val was locked.
DEBUG:Validation xml file /Users/<redacted>/Valentina/patterns/<pattern file name>.val.
DEBUG:Schema loaded.
DEBUG:Validation xml file /Users/<redacted>/Valentina/measurements/individual/<measurements file name>.vit.
DEBUG:Schema loaded.
DEBUG:Full parsing file
DEBUG:Parsing pattern.
DEBUG:Full parse.
DEBUG:Clearing container data for full parse.
DEBUG:Tag version.
DEBUG:Tag unit.
DEBUG:Tag description.
DEBUG:Tag notes.
DEBUG:Tag measurements.
DEBUG:Tag increments.
DEBUG:Tag prewiew calculations.
DEBUG:Tag draw.
DEBUG:Tag calculation.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag line.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag spline.
DEBUG:VToolSplinePath.
DEBUG:Tag point.
DEBUG:Tag line.
DEBUG:Tag spline.
DEBUG:VToolSpline.
DEBUG:Tag line.
DEBUG:Tag line.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag line.
DEBUG:Tag spline.
DEBUG:VToolSplinePath.
DEBUG:Tag spline.
DEBUG:VToolSpline.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag line.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag line.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag point.
DEBUG:Tag line.
DEBUG:Tag point.
DEBUG:Tag spline.
DEBUG:VToolSpline.
DEBUG:Tag spline.
DEBUG:VToolSpline.
DEBUG:Tag modeling.
DEBUG:Tag details.
DEBUG:Tag groups.
DEBUG:Set current name to "/Users/<redacted>/Valentina/patterns/<pattern file name>.val"
DEBUG:Updating recent file list.
DEBUG:Updating recent file actions.
DEBUG:Updating restore file list.
DEBUG:File loaded.
Bus error: 10

Comments (20)

  1. Roman Telezhynskyi repo owner

    Hi JZ,

    Build: 1e6d070 Platform: macOS

    Can you not use git commit hashes here? It is better to give corresponding Hg hashes.

    To reproduce

    I have checked your instruction and cannot reproduce the crash. But i remember that several weeks ago i already fixed very similar bug #851. Please, try commit b926588 and say if it helped you.

  2. JZ reporter

    Tried the 11th of June assembly (current download) and the behaviour changed. Option (Alt) no longer allows me to drag the control point but Shift does.

    So far, I was not able to trigger a crash using Shift-drag.

    Will reopen if it happens again.

  3. JZ reporter
    • changed status to new

    Sorry, need to reopen this.

    With the 11th of June build, I can no longer Option-drag the control points out of a point in a single curve.

    Instead, it drags the curve itself. As it makes the curve much more difficult to control, I think it's a regression.

  4. Roman Telezhynskyi repo owner

    PS. The build ID was used from the About Valentina window. How can I obtain the correct GIT one?

    Sorry, now i understand why you posted it. Totally forgot about this. Don't worry, this is not big problem for me.

    Dragging out the control point while holding the Option key no longer works on a Mac.

    Why do you holding the Option key in first place?

  5. JZ reporter

    Sorry, cannot understand your description.

    Steps to reproduce:

    1) Draw 2 points.

    2) Draw a simple curve, initially the curve is a straight line.

    3) Press 'Option' (or Alt) key on the keyboard

    4) Point mouse over one of the points and holding the Option key, click the Left Mouse Button.

    5) Drag the mouse while holding LMB.

    Expected behaviour:

    The curve control point handle should appear attached to the cursor allowing free-hand movement of that point.

    Actual behaviour:

    One of the below:

    • Nothing happens, or

    • the underlying point is selected, or

    • an underlying structure is selected (if present) like a line, another curve, or

    • In some cases, the dragging modifies the curve itself, not the control point.

  6. JZ reporter

    Why do you holding the Option key in first place?

    Good question. :)

    Because that's:

    • how it used to work

    • is intuitive (expected behaviour from a Mac program)

  7. JZ reporter

    I just realised this may be a usability issue, not a regression.

    I'm starting to doubt myself, HAS IT worked with Option key before?

  8. JZ reporter

    Just sent a newer version of the pattern over email. When trying to move the control point (with or without the Option key) on point PL of curve PL-A35 it keeps selecting the A39_PL line instead of letting me adjust the curve.

    Something's definitely changed.

  9. Roman Telezhynskyi repo owner

    I must say moving item doesn't require holding the Option key and never required.

  10. JZ reporter

    OK. So I've been holding it wrong. I appreciate the irony.

    But I still can't reliably move the curve handle on PL. Even without holding the Option key. It worked for me once, then I keep selecting other items around that. The program is not behaving in an expected manner.

    I think the decision what to select is too location-specific on a point.

    Other programs use modifier keys to move curve control points. Perhaps this is a good enhancement to add that?

  11. Roman Telezhynskyi repo owner

    I appreciate the irony.

    Don't forget, english is not my native language. So, sometime i just not fully understand if people will fully understand me right. :)

    I confirm the regression on Mac. It is based on how Qt orders objects on scene. Somehow on mac a curve control point is now under other objects. I will look what we can do about this.

  12. JZ reporter

    Then I have a suggestion.

    Instead of relying on object order, use a modifier key (Option/Alt) for the user to express their intention to adjust the curve handle.

    Other, similar operations can use Ctrl and Shift modifier keys if they need to exist. For example dragging the curve could be Ctrl-triggered.

  13. Roman Telezhynskyi repo owner

    Confirm on Linux as well.

    If user enabled option Show curve details, he by default sees control points and even the app doesn't select right item, it still allows to drag the point. We should prioritize Control points in the list of selected items.

  14. Roman Telezhynskyi repo owner

    This change doesn't bring any new functionality. It only prioritizes control point over other items in the order.

  15. Log in to comment