Fix regression in mouse dragging behaviour.

This commit is contained in:
Dean Herbert 2017-03-27 17:48:18 +09:00
parent b8c8ca2f0e
commit cc5154dd12
No known key found for this signature in database
GPG Key ID: 46D71BF4958ABB49
1 changed files with 11 additions and 1 deletions

View File

@ -20,9 +20,11 @@ public class MenuCursor : CursorContainer
{
protected override Drawable CreateCursor() => new Cursor();
private bool dragging;
protected override bool OnMouseMove(InputState state)
{
if (state.Mouse.HasMainButtonPressed)
if (dragging)
{
Vector2 offset = state.Mouse.Position - state.Mouse.PositionMouseDown ?? state.Mouse.Delta;
float degrees = (float)MathHelper.RadiansToDegrees(Math.Atan2(-offset.X, offset.Y)) + 24.3f;
@ -39,6 +41,12 @@ protected override bool OnMouseMove(InputState state)
return base.OnMouseMove(state);
}
protected override bool OnDragStart(InputState state)
{
dragging = true;
return base.OnDragStart(state);
}
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args)
{
ActiveCursor.Scale = new Vector2(1);
@ -53,6 +61,8 @@ protected override bool OnMouseUp(InputState state, MouseUpEventArgs args)
{
if (!state.Mouse.HasMainButtonPressed)
{
dragging = false;
((Cursor)ActiveCursor).AdditiveLayer.FadeOut(500, EasingTypes.OutQuint);
ActiveCursor.RotateTo(0, 600 * (1 + Math.Abs(ActiveCursor.Rotation / 720)), EasingTypes.OutElasticHalf);
ActiveCursor.ScaleTo(1, 500, EasingTypes.OutElastic);