Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to cycle between control point types #27035

Closed
wants to merge 7 commits into from

Conversation

kongehund
Copy link
Contributor

This PR adds the ability to change a control point's path type by shift-clicking. When doing so, the control point will cycle between relevant curve types. Specifically:

  • Will only change to perfect curve if the segment has less than 2 inherited points
  • Will only change to inherited if it's not the first point in the slider, and it doesn't break an earlier perfect curve
  • Will only change to B-Spline if the result looks different from Bezier (5 inherited points or more)

This feature makes it faster to change path types, and brings in more familiarity from the osu!standard editor, which has ctrl+click to change a control point to a red anchor. Since ctrl+click is used for selection, shift is used instead.

2024-02-05.00-20-34.mp4

@bdach
Copy link
Collaborator

bdach commented Jun 6, 2024

Even if we wanted this (which is not a given even if I see some support), it cannot be on shift, because this happens:

2024-06-06.14-28-40.mp4

Depending on timing of the shift press the behaviour changes.

  • If you press shift before clicking the slider node changes type and cannot move
  • If you press shift after clicking the slider node begins moving and the shift press makes it snap to the grid

which is not acceptable UX (see also: #25953 (comment)).

Copy link
Collaborator

@bdach bdach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as above

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants