Disallow selections to be moved outside of the playfield (#6742)

Disallow selections to be moved outside of the playfield
This commit is contained in:
Dean Herbert
2019-11-06 18:29:06 +09:00
committed by GitHub
4 changed files with 29 additions and 8 deletions

View File

@ -367,7 +367,8 @@ namespace osu.Game.Screens.Edit.Compose.Components
(Vector2 snappedPosition, double snappedTime) = composer.GetSnappedPosition(ToLocalSpace(movePosition), draggedObject.StartTime);
// Move the hitobjects
selectionHandler.HandleMovement(new MoveSelectionEvent(movementBlueprint, startPosition, ToScreenSpace(snappedPosition)));
if (!selectionHandler.HandleMovement(new MoveSelectionEvent(movementBlueprint, startPosition, ToScreenSpace(snappedPosition))))
return true;
// Apply the start time at the newly snapped-to position
double offset = snappedTime - draggedObject.StartTime;

View File

@ -68,9 +68,8 @@ namespace osu.Game.Screens.Edit.Compose.Components
/// Handles the selected <see cref="DrawableHitObject"/>s being moved.
/// </summary>
/// <param name="moveEvent">The move event.</param>
public virtual void HandleMovement(MoveSelectionEvent moveEvent)
{
}
/// <returns>Whether any <see cref="DrawableHitObject"/>s were moved.</returns>
public virtual bool HandleMovement(MoveSelectionEvent moveEvent) => false;
public bool OnPressed(PlatformAction action)
{