mirror of https://github.com/ppy/osu
Merge pull request #29433 from OliBomby/grid-anchors
Fix grid snap slider placement double-click not making new segment if anchor not hovered
This commit is contained in:
commit
3b94d1f8eb
|
@ -359,8 +359,7 @@ private void updateCursor()
|
|||
}
|
||||
|
||||
// Update the cursor position.
|
||||
var result = positionSnapProvider?.FindSnappedPositionAndTime(inputManager.CurrentState.Mouse.Position, state == SliderPlacementState.ControlPoints ? SnapType.GlobalGrids : SnapType.All);
|
||||
cursor.Position = ToLocalSpace(result?.ScreenSpacePosition ?? inputManager.CurrentState.Mouse.Position) - HitObject.Position;
|
||||
cursor.Position = getCursorPosition();
|
||||
}
|
||||
else if (cursor != null)
|
||||
{
|
||||
|
@ -374,6 +373,12 @@ private void updateCursor()
|
|||
}
|
||||
}
|
||||
|
||||
private Vector2 getCursorPosition()
|
||||
{
|
||||
var result = positionSnapProvider?.FindSnappedPositionAndTime(inputManager.CurrentState.Mouse.Position, state == SliderPlacementState.ControlPoints ? SnapType.GlobalGrids : SnapType.All);
|
||||
return ToLocalSpace(result?.ScreenSpacePosition ?? inputManager.CurrentState.Mouse.Position) - HitObject.Position;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Whether a new control point can be placed at the current mouse position.
|
||||
/// </summary>
|
||||
|
@ -386,7 +391,9 @@ private bool canPlaceNewControlPoint([CanBeNull] out PathControlPoint lastPoint)
|
|||
var lastPiece = controlPointVisualiser.Pieces.Single(p => p.ControlPoint == last);
|
||||
|
||||
lastPoint = last;
|
||||
return lastPiece.IsHovered != true;
|
||||
// We may only place a new control point if the cursor is not overlapping with the last control point.
|
||||
// If snapping is enabled, the cursor may not hover the last piece while still placing the control point at the same position.
|
||||
return !lastPiece.IsHovered && (last is null || Vector2.DistanceSquared(last.Position, getCursorPosition()) > 1f);
|
||||
}
|
||||
|
||||
private void placeNewControlPoint()
|
||||
|
|
Loading…
Reference in New Issue