diff --git a/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SliderBall.cs b/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SliderBall.cs
index c19bbc439d..3081ae49fc 100644
--- a/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SliderBall.cs
+++ b/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SliderBall.cs
@@ -6,10 +6,10 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.Events;
-using osu.Framework.Input.States;
using osu.Game.Rulesets.Objects.Types;
using OpenTK.Graphics;
using osu.Game.Skinning;
+using OpenTK;
namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces
{
@@ -102,23 +102,23 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces
};
}
- private InputState lastState;
+ private Vector2? lastScreenSpaceMousePosition;
protected override bool OnMouseDown(MouseDownEvent e)
{
- lastState = state;
+ lastScreenSpaceMousePosition = e.ScreenSpaceMousePosition;
return base.OnMouseDown(e);
}
protected override bool OnMouseUp(MouseUpEvent e)
{
- lastState = state;
+ lastScreenSpaceMousePosition = e.ScreenSpaceMousePosition;
return base.OnMouseUp(e);
}
protected override bool OnMouseMove(MouseMoveEvent e)
{
- lastState = e;
+ lastScreenSpaceMousePosition = e.ScreenSpaceMousePosition;
return base.OnMouseMove(e);
}
@@ -155,8 +155,8 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces
{
// Make sure to use the base version of ReceivePositionalInputAt so that we correctly check the position.
Tracking = canCurrentlyTrack
- && lastState != null
- && ReceivePositionalInputAt(lastState.Mouse.NativeState.Position)
+ && lastScreenSpaceMousePosition.HasValue
+ && ReceivePositionalInputAt(lastScreenSpaceMousePosition.Value)
&& (drawableSlider?.OsuActionInputManager?.PressedActions.Any(x => x == OsuAction.LeftButton || x == OsuAction.RightButton) ?? false);
}
}
diff --git a/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SpinnerDisc.cs b/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SpinnerDisc.cs
index 7a577383ae..4dd1c5f218 100644
--- a/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SpinnerDisc.cs
+++ b/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SpinnerDisc.cs
@@ -70,7 +70,7 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces
protected override bool OnMouseMove(MouseMoveEvent e)
{
- mousePosition = Parent.ToLocalSpace(e.Mouse.NativeState.Position);
+ mousePosition = Parent.ToLocalSpace(e.ScreenSpaceMousePosition);
return base.OnMouseMove(e);
}
diff --git a/osu.Game.Rulesets.Osu/OsuInputManager.cs b/osu.Game.Rulesets.Osu/OsuInputManager.cs
index 70b35fbd96..0f7bc30888 100644
--- a/osu.Game.Rulesets.Osu/OsuInputManager.cs
+++ b/osu.Game.Rulesets.Osu/OsuInputManager.cs
@@ -5,7 +5,6 @@ using System.Collections.Generic;
using System.ComponentModel;
using osu.Framework.Input.Bindings;
using osu.Framework.Input.Events;
-using osu.Framework.Input.States;
using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.Osu
@@ -36,13 +35,11 @@ namespace osu.Game.Rulesets.Osu
{
}
- protected override bool OnKeyDown(KeyDownEvent e) => AllowUserPresses && base.OnKeyDown(e);
- protected override bool OnKeyUp(KeyUpEvent e) => AllowUserPresses && base.OnKeyUp(e);
- protected override bool OnJoystickPress(InputState state, JoystickEventArgs args) => AllowUserPresses && base.OnJoystickPress(args);
- protected override bool OnJoystickRelease(InputState state, JoystickEventArgs args) => AllowUserPresses && base.OnJoystickRelease(args);
- protected override bool OnMouseDown(MouseDownEvent e) => AllowUserPresses && base.OnMouseDown(e);
- protected override bool OnMouseUp(MouseUpEvent e) => AllowUserPresses && base.OnMouseUp(e);
- protected override bool OnScroll(ScrollEvent e) => AllowUserPresses && base.OnScroll(e);
+ protected override bool Handle(UIEvent e)
+ {
+ if (!AllowUserPresses) return false;
+ return base.Handle(e);
+ }
}
}
diff --git a/osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs b/osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
index 8a701f1afc..4b5513ff9c 100644
--- a/osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
+++ b/osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
@@ -119,7 +119,7 @@ namespace osu.Game.Rulesets.Osu.UI.Cursor
protected override bool OnMouseMove(MouseMoveEvent e)
{
- Vector2 pos = e.Mouse.NativeState.Position;
+ Vector2 pos = e.ScreenSpaceMousePosition;
if (lastPosition == null)
{
diff --git a/osu.Game.Tests/Visual/TestCaseCursors.cs b/osu.Game.Tests/Visual/TestCaseCursors.cs
index cdb6b8c1f8..1f409f043e 100644
--- a/osu.Game.Tests/Visual/TestCaseCursors.cs
+++ b/osu.Game.Tests/Visual/TestCaseCursors.cs
@@ -184,7 +184,7 @@ namespace osu.Game.Tests.Visual
///
/// The cursor to check.
private bool checkAtMouse(CursorContainer cursorContainer)
- => Precision.AlmostEquals(InputManager.CurrentState.Mouse.NativeState.Position, cursorContainer.ToScreenSpace(cursorContainer.ActiveCursor.DrawPosition));
+ => Precision.AlmostEquals(InputManager.CurrentState.Mouse.Position, cursorContainer.ToScreenSpace(cursorContainer.ActiveCursor.DrawPosition));
private class CustomCursorBox : Container, IProvideCursor
{
diff --git a/osu.Game/Graphics/Containers/OsuFocusedOverlayContainer.cs b/osu.Game/Graphics/Containers/OsuFocusedOverlayContainer.cs
index 14f18e554d..2aa3fede2c 100644
--- a/osu.Game/Graphics/Containers/OsuFocusedOverlayContainer.cs
+++ b/osu.Game/Graphics/Containers/OsuFocusedOverlayContainer.cs
@@ -61,7 +61,7 @@ namespace osu.Game.Graphics.Containers
protected override bool OnClick(ClickEvent e)
{
- if (!base.ReceivePositionalInputAt(state.Mouse.NativeState.Position))
+ if (!base.ReceivePositionalInputAt(e.ScreenSpaceMousePosition))
{
State = Visibility.Hidden;
return true;
diff --git a/osu.Game/Graphics/Containers/OsuScrollContainer.cs b/osu.Game/Graphics/Containers/OsuScrollContainer.cs
index 5c5c42ba70..4f18eb9e7b 100644
--- a/osu.Game/Graphics/Containers/OsuScrollContainer.cs
+++ b/osu.Game/Graphics/Containers/OsuScrollContainer.cs
@@ -3,7 +3,6 @@
using osu.Framework.Graphics.Containers;
using osu.Framework.Input.Events;
-using osu.Framework.Input.States;
using OpenTK.Input;
namespace osu.Game.Graphics.Containers
@@ -21,7 +20,7 @@ namespace osu.Game.Graphics.Containers
///
public double DistanceDecayOnRightMouseScrollbar = 0.02;
- private bool shouldPerformRightMouseScroll(InputState state) => RightMouseScrollbar && state.Mouse.IsPressed(MouseButton.Right);
+ private bool shouldPerformRightMouseScroll(MouseButtonEvent e) => RightMouseScrollbar && e.Button == MouseButton.Right;
private void scrollToRelative(float value) => ScrollTo(Clamp((value - Scrollbar.DrawSize[ScrollDim] / 2) / Scrollbar.Size[ScrollDim]), true, DistanceDecayOnRightMouseScrollbar);
@@ -31,9 +30,9 @@ namespace osu.Game.Graphics.Containers
protected override bool OnMouseDown(MouseDownEvent e)
{
- if (shouldPerformRightMouseScroll(state))
+ if (shouldPerformRightMouseScroll(e))
{
- scrollToRelative(state.Mouse.Position[ScrollDim]);
+ scrollToRelative(e.MousePosition[ScrollDim]);
return true;
}
@@ -44,7 +43,7 @@ namespace osu.Game.Graphics.Containers
{
if (mouseScrollBarDragging)
{
- scrollToRelative(e.Mouse.Position[ScrollDim]);
+ scrollToRelative(e.MousePosition[ScrollDim]);
return true;
}
diff --git a/osu.Game/Graphics/Containers/ParallaxContainer.cs b/osu.Game/Graphics/Containers/ParallaxContainer.cs
index 8e1e5d54fa..a6b79a20dc 100644
--- a/osu.Game/Graphics/Containers/ParallaxContainer.cs
+++ b/osu.Game/Graphics/Containers/ParallaxContainer.cs
@@ -67,7 +67,7 @@ namespace osu.Game.Graphics.Containers
if (parallaxEnabled)
{
- Vector2 offset = (input.CurrentState.Mouse == null ? Vector2.Zero : ToLocalSpace(input.CurrentState.Mouse.NativeState.Position) - DrawSize / 2) * ParallaxAmount;
+ Vector2 offset = (input.CurrentState.Mouse == null ? Vector2.Zero : ToLocalSpace(input.CurrentState.Mouse.Position) - DrawSize / 2) * ParallaxAmount;
double elapsed = MathHelper.Clamp(Clock.ElapsedFrameTime, 0, 1000);
diff --git a/osu.Game/Graphics/Cursor/MenuCursor.cs b/osu.Game/Graphics/Cursor/MenuCursor.cs
index a34a7c53d0..6bd3b986c8 100644
--- a/osu.Game/Graphics/Cursor/MenuCursor.cs
+++ b/osu.Game/Graphics/Cursor/MenuCursor.cs
@@ -43,7 +43,7 @@ namespace osu.Game.Graphics.Cursor
{
if (dragRotationState != DragRotationState.NotDragging)
{
- var position = e.Mouse.Position;
+ var position = e.MousePosition;
var distance = Vector2Extensions.Distance(position, positionMouseDown);
// don't start rotating until we're moved a minimum distance away from the mouse down location,
// else it can have an annoying effect.
@@ -52,7 +52,7 @@ namespace osu.Game.Graphics.Cursor
// don't rotate when distance is zero to avoid NaN
if (dragRotationState == DragRotationState.Rotating && distance > 0)
{
- Vector2 offset = e.Mouse.Position - positionMouseDown;
+ Vector2 offset = e.MousePosition - positionMouseDown;
float degrees = (float)MathHelper.RadiansToDegrees(Math.Atan2(-offset.X, offset.Y)) + 24.3f;
// Always rotate in the direction of least distance
@@ -83,14 +83,14 @@ namespace osu.Game.Graphics.Cursor
if (e.Button == MouseButton.Left && cursorRotate)
{
dragRotationState = DragRotationState.DragStarted;
- positionMouseDown = state.Mouse.Position;
+ positionMouseDown = e.MousePosition;
}
return base.OnMouseDown(e);
}
protected override bool OnMouseUp(MouseUpEvent e)
{
- if (!state.Mouse.HasMainButtonPressed)
+ if (!e.CurrentState.Mouse.HasMainButtonPressed)
{
activeCursor.AdditiveLayer.FadeOutFromOne(500, Easing.OutQuint);
activeCursor.ScaleTo(1, 500, Easing.OutElastic);
diff --git a/osu.Game/Graphics/UserInterface/SearchTextBox.cs b/osu.Game/Graphics/UserInterface/SearchTextBox.cs
index 8aa3a3f663..67ee35df04 100644
--- a/osu.Game/Graphics/UserInterface/SearchTextBox.cs
+++ b/osu.Game/Graphics/UserInterface/SearchTextBox.cs
@@ -34,7 +34,8 @@ namespace osu.Game.Graphics.UserInterface
protected override bool OnKeyDown(KeyDownEvent e)
{
- if (!state.Keyboard.ControlPressed && !state.Keyboard.ShiftPressed)
+ var keyboard = e.CurrentState.Keyboard;
+ if (!keyboard.ControlPressed && !keyboard.ShiftPressed)
{
switch (e.Key)
{
@@ -56,7 +57,7 @@ namespace osu.Game.Graphics.UserInterface
}
}
- if (state.Keyboard.ShiftPressed)
+ if (keyboard.ShiftPressed)
{
switch (e.Key)
{
diff --git a/osu.Game/Overlays/ChatOverlay.cs b/osu.Game/Overlays/ChatOverlay.cs
index 0424481f77..5312207e4e 100644
--- a/osu.Game/Overlays/ChatOverlay.cs
+++ b/osu.Game/Overlays/ChatOverlay.cs
@@ -206,10 +206,7 @@ namespace osu.Game.Overlays
{
if (isDragging)
{
- Trace.Assert(e.Mouse.PositionMouseDown != null);
-
- // ReSharper disable once PossibleInvalidOperationException
- double targetChatHeight = startDragChatHeight - (e.Mouse.Position.Y - e.Mouse.PositionMouseDown.Value.Y) / Parent.DrawSize.Y;
+ double targetChatHeight = startDragChatHeight - (e.MousePosition.Y - e.MouseDownPosition.Y) / Parent.DrawSize.Y;
// If the channel selection screen is shown, mind its minimum height
if (channelSelection.State == Visibility.Visible && targetChatHeight > 1f - channel_selection_min_height)
diff --git a/osu.Game/Overlays/KeyBinding/KeyBindingRow.cs b/osu.Game/Overlays/KeyBinding/KeyBindingRow.cs
index fb17635806..87325c69aa 100644
--- a/osu.Game/Overlays/KeyBinding/KeyBindingRow.cs
+++ b/osu.Game/Overlays/KeyBinding/KeyBindingRow.cs
@@ -11,14 +11,12 @@ using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.Bindings;
using osu.Framework.Input.Events;
-using osu.Framework.Input.States;
using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Sprites;
using osu.Game.Input;
using OpenTK.Graphics;
using OpenTK.Input;
-using JoystickEventArgs = osu.Framework.Input.EventArgs.JoystickEventArgs;
namespace osu.Game.Overlays.KeyBinding
{
@@ -166,14 +164,14 @@ namespace osu.Game.Overlays.KeyBinding
}
}
- bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(state));
+ bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(e.CurrentState));
return true;
}
protected override bool OnMouseUp(MouseUpEvent e)
{
// don't do anything until the last button is released.
- if (!HasFocus || state.Mouse.Buttons.Any())
+ if (!HasFocus || e.CurrentState.Mouse.HasAnyButtonPressed)
return base.OnMouseUp(e);
if (bindTarget.IsHovered)
@@ -189,7 +187,7 @@ namespace osu.Game.Overlays.KeyBinding
{
if (bindTarget.IsHovered)
{
- bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(e, e.Mouse.ScrollDelta));
+ bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(e.CurrentState, e.ScrollDelta));
finalise();
return true;
}
@@ -207,7 +205,7 @@ namespace osu.Game.Overlays.KeyBinding
{
case Key.Delete:
{
- if (state.Keyboard.ShiftPressed)
+ if (e.CurrentState.Keyboard.ShiftPressed)
{
bindTarget.UpdateKeyCombination(InputKey.None);
finalise();
@@ -218,7 +216,7 @@ namespace osu.Game.Overlays.KeyBinding
}
}
- bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(state));
+ bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(e.CurrentState));
if (!isModifier(e.Key)) finalise();
return true;
@@ -232,21 +230,21 @@ namespace osu.Game.Overlays.KeyBinding
return true;
}
- protected override bool OnJoystickPress(InputState state, JoystickEventArgs args)
+ protected override bool OnJoystickPress(JoystickPressEvent e)
{
if (!HasFocus)
return false;
- bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(state));
+ bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(e.CurrentState));
finalise();
return true;
}
- protected override bool OnJoystickRelease(InputState state, JoystickEventArgs args)
+ protected override bool OnJoystickRelease(JoystickReleaseEvent e)
{
if (!HasFocus)
- return base.OnJoystickRelease(args);
+ return base.OnJoystickRelease(e);
finalise();
return true;
diff --git a/osu.Game/Overlays/MedalOverlay.cs b/osu.Game/Overlays/MedalOverlay.cs
index 7e0954899d..13c01cb88f 100644
--- a/osu.Game/Overlays/MedalOverlay.cs
+++ b/osu.Game/Overlays/MedalOverlay.cs
@@ -183,7 +183,7 @@ namespace osu.Game.Overlays
protected override void OnFocusLost(FocusLostEvent e)
{
- if (e.Keyboard.Keys.Contains(Key.Escape)) dismiss();
+ if (e.CurrentState.Keyboard.IsPressed(Key.Escape)) dismiss();
}
private const double initial_duration = 400;
diff --git a/osu.Game/Overlays/Mods/ModButton.cs b/osu.Game/Overlays/Mods/ModButton.cs
index 40b9793be4..ecb65f6df2 100644
--- a/osu.Game/Overlays/Mods/ModButton.cs
+++ b/osu.Game/Overlays/Mods/ModButton.cs
@@ -159,7 +159,7 @@ namespace osu.Game.Overlays.Mods
scaleContainer.ScaleTo(1, 500, Easing.OutElastic);
// only trigger the event if we are inside the area of the button
- if (Contains(ToScreenSpace(state.Mouse.Position - Position)))
+ if (Contains(e.ScreenSpaceMousePosition))
{
switch (e.Button)
{
diff --git a/osu.Game/Overlays/Mods/ModSection.cs b/osu.Game/Overlays/Mods/ModSection.cs
index 3ba49042e5..4759325bc4 100644
--- a/osu.Game/Overlays/Mods/ModSection.cs
+++ b/osu.Game/Overlays/Mods/ModSection.cs
@@ -60,7 +60,7 @@ namespace osu.Game.Overlays.Mods
{
var index = Array.IndexOf(ToggleKeys, e.Key);
if (index > -1 && index < buttons.Length)
- buttons[index].SelectNext(state.Keyboard.ShiftPressed ? -1 : 1);
+ buttons[index].SelectNext(e.CurrentState.Keyboard.ShiftPressed ? -1 : 1);
}
return base.OnKeyDown(e);
diff --git a/osu.Game/Overlays/Music/PlaylistList.cs b/osu.Game/Overlays/Music/PlaylistList.cs
index 48c07846b8..17c8d2f154 100644
--- a/osu.Game/Overlays/Music/PlaylistList.cs
+++ b/osu.Game/Overlays/Music/PlaylistList.cs
@@ -117,14 +117,14 @@ namespace osu.Game.Overlays.Music
protected override bool OnDragStart(DragStartEvent e)
{
- nativeDragPosition = e.Mouse.NativeState.Position;
+ nativeDragPosition = e.ScreenSpaceMousePosition;
draggedItem = items.FirstOrDefault(d => d.IsDraggable);
return draggedItem != null || base.OnDragStart(e);
}
protected override bool OnDrag(DragEvent e)
{
- nativeDragPosition = e.Mouse.NativeState.Position;
+ nativeDragPosition = e.ScreenSpaceMousePosition;
if (draggedItem == null)
return base.OnDrag(e);
return true;
@@ -132,7 +132,7 @@ namespace osu.Game.Overlays.Music
protected override bool OnDragEnd(DragEndEvent e)
{
- nativeDragPosition = e.Mouse.NativeState.Position;
+ nativeDragPosition = e.ScreenSpaceMousePosition;
var handled = draggedItem != null || base.OnDragEnd(e);
draggedItem = null;
diff --git a/osu.Game/Overlays/MusicController.cs b/osu.Game/Overlays/MusicController.cs
index fc2fed890b..e3dc504e4d 100644
--- a/osu.Game/Overlays/MusicController.cs
+++ b/osu.Game/Overlays/MusicController.cs
@@ -457,20 +457,14 @@ namespace osu.Game.Overlays
private class DragContainer : Container
{
- private Vector2 dragStart;
-
protected override bool OnDragStart(DragStartEvent e)
{
- base.OnDragStart(e);
- dragStart = e.Mouse.Position;
return true;
}
protected override bool OnDrag(DragEvent e)
{
- if (base.OnDrag(e)) return true;
-
- Vector2 change = e.Mouse.Position - dragStart;
+ Vector2 change = e.MousePosition - e.MouseDownPosition;
// Diminish the drag distance as we go further to simulate "rubber band" feeling.
change *= change.Length <= 0 ? 0 : (float)Math.Pow(change.Length, 0.7f) / change.Length;
diff --git a/osu.Game/Overlays/Profile/Header/RankGraph.cs b/osu.Game/Overlays/Profile/Header/RankGraph.cs
index 2abfaa1a6d..fc80370cf9 100644
--- a/osu.Game/Overlays/Profile/Header/RankGraph.cs
+++ b/osu.Game/Overlays/Profile/Header/RankGraph.cs
@@ -141,7 +141,7 @@ namespace osu.Game.Overlays.Profile.Header
{
if (ranks?.Length > 1)
{
- graph.UpdateBallPosition(e.Mouse.Position.X);
+ graph.UpdateBallPosition(e.MousePosition.X);
graph.ShowBall();
}
return base.OnHover(e);
@@ -150,7 +150,7 @@ namespace osu.Game.Overlays.Profile.Header
protected override bool OnMouseMove(MouseMoveEvent e)
{
if (ranks?.Length > 1)
- graph.UpdateBallPosition(e.Mouse.Position.X);
+ graph.UpdateBallPosition(e.MousePosition.X);
return base.OnMouseMove(e);
}
diff --git a/osu.Game/Overlays/Toolbar/ToolbarRulesetSelector.cs b/osu.Game/Overlays/Toolbar/ToolbarRulesetSelector.cs
index aa55f8fa41..167d163d8b 100644
--- a/osu.Game/Overlays/Toolbar/ToolbarRulesetSelector.cs
+++ b/osu.Game/Overlays/Toolbar/ToolbarRulesetSelector.cs
@@ -89,7 +89,7 @@ namespace osu.Game.Overlays.Toolbar
{
base.OnKeyDown(e);
- if (state.Keyboard.ControlPressed && !e.Repeat && e.Key >= Key.Number1 && e.Key <= Key.Number9)
+ if (e.CurrentState.Keyboard.ControlPressed && !e.Repeat && e.Key >= Key.Number1 && e.Key <= Key.Number9)
{
int requested = e.Key - Key.Number1;
diff --git a/osu.Game/Overlays/Volume/VolumeMeter.cs b/osu.Game/Overlays/Volume/VolumeMeter.cs
index daf45f71b4..86be652c8c 100644
--- a/osu.Game/Overlays/Volume/VolumeMeter.cs
+++ b/osu.Game/Overlays/Volume/VolumeMeter.cs
@@ -241,7 +241,7 @@ namespace osu.Game.Overlays.Volume
protected override bool OnScroll(ScrollEvent e)
{
- adjust(e.Mouse.ScrollDelta.Y, e.Mouse.HasPreciseScroll);
+ adjust(e.ScrollDelta.Y, e.IsPrecise);
return true;
}
diff --git a/osu.Game/Rulesets/Edit/HitObjectMask.cs b/osu.Game/Rulesets/Edit/HitObjectMask.cs
index a16c6d59dd..636ea418f3 100644
--- a/osu.Game/Rulesets/Edit/HitObjectMask.cs
+++ b/osu.Game/Rulesets/Edit/HitObjectMask.cs
@@ -37,7 +37,7 @@ namespace osu.Game.Rulesets.Edit
///
/// Invoked when this has requested drag.
///
- public event Action DragRequested;
+ public event Action DragRequested;
///
/// The which this applies to.
@@ -102,7 +102,7 @@ namespace osu.Game.Rulesets.Edit
if (State == SelectionState.NotSelected)
{
- SelectionRequested?.Invoke(this, state);
+ SelectionRequested?.Invoke(this, e.CurrentState);
selectionRequested = true;
}
@@ -114,7 +114,7 @@ namespace osu.Game.Rulesets.Edit
if (State == SelectionState.Selected && !selectionRequested)
{
selectionRequested = true;
- SelectionRequested?.Invoke(this, e);
+ SelectionRequested?.Invoke(this, e.CurrentState);
return true;
}
@@ -125,7 +125,7 @@ namespace osu.Game.Rulesets.Edit
protected override bool OnDrag(DragEvent e)
{
- DragRequested?.Invoke(this, e);
+ DragRequested?.Invoke(this, e.Delta, e.CurrentState);
return true;
}
diff --git a/osu.Game/Rulesets/UI/RulesetInputManager.cs b/osu.Game/Rulesets/UI/RulesetInputManager.cs
index 91bb505724..fc6f82544e 100644
--- a/osu.Game/Rulesets/UI/RulesetInputManager.cs
+++ b/osu.Game/Rulesets/UI/RulesetInputManager.cs
@@ -18,6 +18,9 @@ using osu.Game.Input.Handlers;
using osu.Game.Screens.Play;
using OpenTK.Input;
using static osu.Game.Input.Handlers.ReplayInputHandler;
+using JoystickState = osu.Framework.Input.States.JoystickState;
+using KeyboardState = osu.Framework.Input.States.KeyboardState;
+using MouseState = osu.Framework.Input.States.MouseState;
namespace osu.Game.Rulesets.UI
{
@@ -35,13 +38,7 @@ namespace osu.Game.Rulesets.UI
protected override InputState CreateInitialState()
{
var state = base.CreateInitialState();
- return new RulesetInputManagerInputState
- {
- Mouse = state.Mouse,
- Keyboard = state.Keyboard,
- Joystick = state.Joystick,
- LastReplayState = null
- };
+ return new RulesetInputManagerInputState(state.Mouse, state.Keyboard, state.Joystick);
}
protected readonly KeyBindingContainer KeyBindingContainer;
@@ -275,5 +272,10 @@ namespace osu.Game.Rulesets.UI
where T : struct
{
public ReplayState LastReplayState;
+
+ public RulesetInputManagerInputState(MouseState mouse = null, KeyboardState keyboard = null, JoystickState joystick = null)
+ : base(mouse, keyboard, joystick)
+ {
+ }
}
}
diff --git a/osu.Game/Screens/Edit/Components/Timelines/Summary/Parts/MarkerPart.cs b/osu.Game/Screens/Edit/Components/Timelines/Summary/Parts/MarkerPart.cs
index 41ef2065da..4b57e1e92d 100644
--- a/osu.Game/Screens/Edit/Components/Timelines/Summary/Parts/MarkerPart.cs
+++ b/osu.Game/Screens/Edit/Components/Timelines/Summary/Parts/MarkerPart.cs
@@ -33,13 +33,13 @@ namespace osu.Game.Screens.Edit.Components.Timelines.Summary.Parts
protected override bool OnDragEnd(DragEndEvent e) => true;
protected override bool OnDrag(DragEvent e)
{
- seekToPosition(e.Mouse.NativeState.Position);
+ seekToPosition(e.ScreenSpaceMousePosition);
return true;
}
protected override bool OnMouseDown(MouseDownEvent e)
{
- seekToPosition(state.Mouse.NativeState.Position);
+ seekToPosition(e.ScreenSpaceMousePosition);
return true;
}
diff --git a/osu.Game/Screens/Edit/Editor.cs b/osu.Game/Screens/Edit/Editor.cs
index 2cfcf4c415..62cf76ef69 100644
--- a/osu.Game/Screens/Edit/Editor.cs
+++ b/osu.Game/Screens/Edit/Editor.cs
@@ -184,7 +184,7 @@ namespace osu.Game.Screens.Edit
protected override bool OnScroll(ScrollEvent e)
{
- if (e.Mouse.ScrollDelta.X + e.Mouse.ScrollDelta.Y > 0)
+ if (e.ScrollDelta.X + e.ScrollDelta.Y > 0)
clock.SeekBackward(!clock.IsRunning);
else
clock.SeekForward(!clock.IsRunning);
diff --git a/osu.Game/Screens/Edit/Screens/Compose/BeatDivisorControl.cs b/osu.Game/Screens/Edit/Screens/Compose/BeatDivisorControl.cs
index 2e1b2c1ac3..e46be9f7c1 100644
--- a/osu.Game/Screens/Edit/Screens/Compose/BeatDivisorControl.cs
+++ b/osu.Game/Screens/Edit/Screens/Compose/BeatDivisorControl.cs
@@ -13,7 +13,6 @@ using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.Events;
-using osu.Framework.Input.States;
using osu.Game.Graphics;
using osu.Game.Graphics.UserInterface;
using OpenTK;
@@ -264,20 +263,20 @@ namespace osu.Game.Screens.Edit.Screens.Compose
protected override bool OnClick(ClickEvent e)
{
- handleMouseInput(e);
+ handleMouseInput(e.ScreenSpaceMousePosition);
return true;
}
protected override bool OnDrag(DragEvent e)
{
- handleMouseInput(e);
+ handleMouseInput(e.ScreenSpaceMousePosition);
return true;
}
- private void handleMouseInput(InputState state)
+ private void handleMouseInput(Vector2 screenSpaceMousePosition)
{
// copied from SliderBar so we can do custom spacing logic.
- var xPosition = (ToLocalSpace(state?.Mouse.NativeState.Position ?? Vector2.Zero).X - RangePadding) / UsableWidth;
+ var xPosition = (ToLocalSpace(screenSpaceMousePosition).X - RangePadding) / UsableWidth;
CurrentNumber.Value = availableDivisors.OrderBy(d => Math.Abs(getMappedPosition(d) - xPosition)).First();
OnUserChange();
diff --git a/osu.Game/Screens/Edit/Screens/Compose/Layers/DragLayer.cs b/osu.Game/Screens/Edit/Screens/Compose/Layers/DragLayer.cs
index 6db272e2a4..981ddd989c 100644
--- a/osu.Game/Screens/Edit/Screens/Compose/Layers/DragLayer.cs
+++ b/osu.Game/Screens/Edit/Screens/Compose/Layers/DragLayer.cs
@@ -64,8 +64,8 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
protected override bool OnDrag(DragEvent e)
{
- var dragPosition = e.Mouse.NativeState.Position;
- var dragStartPosition = e.Mouse.NativeState.PositionMouseDown ?? dragPosition;
+ var dragPosition = e.ScreenSpaceMousePosition;
+ var dragStartPosition = e.ScreenSpaceMouseDownPosition;
var dragQuad = new Quad(dragStartPosition.X, dragStartPosition.Y, dragPosition.X - dragStartPosition.X, dragPosition.Y - dragStartPosition.Y);
diff --git a/osu.Game/Screens/Edit/Screens/Compose/Layers/MaskContainer.cs b/osu.Game/Screens/Edit/Screens/Compose/Layers/MaskContainer.cs
index 5ee31769a3..19258d669e 100644
--- a/osu.Game/Screens/Edit/Screens/Compose/Layers/MaskContainer.cs
+++ b/osu.Game/Screens/Edit/Screens/Compose/Layers/MaskContainer.cs
@@ -8,6 +8,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Input.States;
using osu.Game.Rulesets.Edit;
+using OpenTK;
using RectangleF = osu.Framework.Graphics.Primitives.RectangleF;
namespace osu.Game.Screens.Edit.Screens.Compose.Layers
@@ -32,7 +33,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
///
/// Invoked when any requests drag.
///
- public event Action MaskDragRequested;
+ public event Action MaskDragRequested;
private IEnumerable aliveMasks => AliveInternalChildren.Cast();
@@ -103,7 +104,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
}
private void onSelectionRequested(HitObjectMask mask, InputState state) => MaskSelectionRequested?.Invoke(mask, state);
- private void onDragRequested(HitObjectMask mask, InputState state) => MaskDragRequested?.Invoke(mask, state);
+ private void onDragRequested(HitObjectMask mask, Vector2 delta, InputState state) => MaskDragRequested?.Invoke(mask, delta, state);
protected override int Compare(Drawable x, Drawable y)
{
diff --git a/osu.Game/Screens/Edit/Screens/Compose/Layers/MaskSelection.cs b/osu.Game/Screens/Edit/Screens/Compose/Layers/MaskSelection.cs
index 927e7a2342..635edf82da 100644
--- a/osu.Game/Screens/Edit/Screens/Compose/Layers/MaskSelection.cs
+++ b/osu.Game/Screens/Edit/Screens/Compose/Layers/MaskSelection.cs
@@ -54,7 +54,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
#region User Input Handling
- public void HandleDrag(HitObjectMask m, InputState state)
+ public void HandleDrag(HitObjectMask m, Vector2 delta, InputState state)
{
// Todo: Various forms of snapping
@@ -63,7 +63,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
switch (mask.HitObject.HitObject)
{
case IHasEditablePosition editablePosition:
- editablePosition.OffsetPosition(state.Mouse.Delta);
+ editablePosition.OffsetPosition(delta);
break;
}
}
diff --git a/osu.Game/Screens/Edit/Screens/Compose/Timeline/ZoomableScrollContainer.cs b/osu.Game/Screens/Edit/Screens/Compose/Timeline/ZoomableScrollContainer.cs
index 6390f8dd96..bbba439ca7 100644
--- a/osu.Game/Screens/Edit/Screens/Compose/Timeline/ZoomableScrollContainer.cs
+++ b/osu.Game/Screens/Edit/Screens/Compose/Timeline/ZoomableScrollContainer.cs
@@ -99,11 +99,11 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Timeline
protected override bool OnScroll(ScrollEvent e)
{
- if (e.Mouse.HasPreciseScroll)
+ if (e.IsPrecise)
// for now, we don't support zoom when using a precision scroll device. this needs gesture support.
return base.OnScroll(e);
- setZoomTarget(zoomTarget + e.Mouse.ScrollDelta.Y, zoomedContent.ToLocalSpace(e.Mouse.NativeState.Position).X);
+ setZoomTarget(zoomTarget + e.ScrollDelta.Y, zoomedContent.ToLocalSpace(e.ScreenSpaceMousePosition).X);
return true;
}
diff --git a/osu.Game/Screens/Menu/Button.cs b/osu.Game/Screens/Menu/Button.cs
index bf0e0418e9..83d8ef12b8 100644
--- a/osu.Game/Screens/Menu/Button.cs
+++ b/osu.Game/Screens/Menu/Button.cs
@@ -205,7 +205,8 @@ namespace osu.Game.Screens.Menu
protected override bool OnKeyDown(KeyDownEvent e)
{
- if (e.Repeat || state.Keyboard.ControlPressed || state.Keyboard.ShiftPressed || state.Keyboard.AltPressed)
+ var keyboard = e.CurrentState.Keyboard;
+ if (e.Repeat || keyboard.ControlPressed || keyboard.ShiftPressed || keyboard.AltPressed)
return false;
if (triggerKey == e.Key && triggerKey != Key.Unknown)
diff --git a/osu.Game/Screens/Menu/MainMenu.cs b/osu.Game/Screens/Menu/MainMenu.cs
index ef86351760..531ce85d4d 100644
--- a/osu.Game/Screens/Menu/MainMenu.cs
+++ b/osu.Game/Screens/Menu/MainMenu.cs
@@ -201,7 +201,8 @@ namespace osu.Game.Screens.Menu
protected override bool OnKeyDown(KeyDownEvent e)
{
- if (!e.Repeat && state.Keyboard.ControlPressed && state.Keyboard.ShiftPressed && e.Key == Key.D)
+ var keyboard = e.CurrentState.Keyboard;
+ if (!e.Repeat && keyboard.ControlPressed && keyboard.ShiftPressed && e.Key == Key.D)
{
Push(new Drawings());
return true;
diff --git a/osu.Game/Screens/Play/GameplayMenuOverlay.cs b/osu.Game/Screens/Play/GameplayMenuOverlay.cs
index ed79d32a39..2c984e6135 100644
--- a/osu.Game/Screens/Play/GameplayMenuOverlay.cs
+++ b/osu.Game/Screens/Play/GameplayMenuOverlay.cs
@@ -295,7 +295,7 @@ namespace osu.Game.Screens.Play
if (e.Repeat || e.Key != Key.Enter || !Selected)
return false;
- OnClick(state);
+ Click();
return true;
}
}
diff --git a/osu.Game/Screens/Play/HUD/PlayerSettingsOverlay.cs b/osu.Game/Screens/Play/HUD/PlayerSettingsOverlay.cs
index 4b3cc57546..1ce557f70f 100644
--- a/osu.Game/Screens/Play/HUD/PlayerSettingsOverlay.cs
+++ b/osu.Game/Screens/Play/HUD/PlayerSettingsOverlay.cs
@@ -56,7 +56,7 @@ namespace osu.Game.Screens.Play.HUD
{
if (e.Repeat) return false;
- if (state.Keyboard.ControlPressed)
+ if (e.CurrentState.Keyboard.ControlPressed)
{
if (e.Key == Key.H && ReplayLoaded)
{
diff --git a/osu.Game/Screens/Play/HUD/QuitButton.cs b/osu.Game/Screens/Play/HUD/QuitButton.cs
index 569764aaf2..347238f1d6 100644
--- a/osu.Game/Screens/Play/HUD/QuitButton.cs
+++ b/osu.Game/Screens/Play/HUD/QuitButton.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System;
+using System.Linq;
using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
@@ -62,7 +63,7 @@ namespace osu.Game.Screens.Play.HUD
protected override bool OnMouseMove(MouseMoveEvent e)
{
- positionalAdjust = Vector2.Distance(e.Mouse.NativeState.Position, button.ScreenSpaceDrawQuad.Centre) / 200;
+ positionalAdjust = Vector2.Distance(e.ScreenSpaceMousePosition, button.ScreenSpaceDrawQuad.Centre) / 200;
return base.OnMouseMove(e);
}
@@ -182,14 +183,14 @@ namespace osu.Game.Screens.Play.HUD
protected override bool OnMouseDown(MouseDownEvent e)
{
- if (!pendingAnimation && state.Mouse.Buttons.Count() == 1)
+ if (!pendingAnimation && e.CurrentState.Mouse.Buttons.Count() == 1)
BeginConfirm();
return true;
}
protected override bool OnMouseUp(MouseUpEvent e)
{
- if (!state.Mouse.Buttons.Any())
+ if (!e.CurrentState.Mouse.Buttons.Any())
AbortConfirm();
return true;
}
diff --git a/osu.Game/Screens/Play/HUDOverlay.cs b/osu.Game/Screens/Play/HUDOverlay.cs
index 3091cc5831..aa4d6c039b 100644
--- a/osu.Game/Screens/Play/HUDOverlay.cs
+++ b/osu.Game/Screens/Play/HUDOverlay.cs
@@ -155,7 +155,7 @@ namespace osu.Game.Screens.Play
{
if (e.Repeat) return false;
- if (state.Keyboard.ShiftPressed)
+ if (e.CurrentState.Keyboard.ShiftPressed)
{
switch (e.Key)
{
diff --git a/osu.Game/Screens/Play/SkipOverlay.cs b/osu.Game/Screens/Play/SkipOverlay.cs
index a1c43c014a..68bd5f7d00 100644
--- a/osu.Game/Screens/Play/SkipOverlay.cs
+++ b/osu.Game/Screens/Play/SkipOverlay.cs
@@ -130,7 +130,7 @@ namespace osu.Game.Screens.Play
protected override bool OnMouseMove(MouseMoveEvent e)
{
- if (!e.Mouse.HasAnyButtonPressed)
+ if (!e.CurrentState.Mouse.HasAnyButtonPressed)
fadeContainer.State = Visibility.Visible;
return base.OnMouseMove(e);
}
diff --git a/osu.Game/Screens/Select/FooterButton.cs b/osu.Game/Screens/Select/FooterButton.cs
index 1521c0f413..4f12082e08 100644
--- a/osu.Game/Screens/Select/FooterButton.cs
+++ b/osu.Game/Screens/Select/FooterButton.cs
@@ -127,7 +127,7 @@ namespace osu.Game.Screens.Select
{
if (!e.Repeat && e.Key == Hotkey)
{
- OnClick(state);
+ Click();
return true;
}
diff --git a/osu.Game/Screens/Select/Options/BeatmapOptionsButton.cs b/osu.Game/Screens/Select/Options/BeatmapOptionsButton.cs
index a03b3f988a..cd775419be 100644
--- a/osu.Game/Screens/Select/Options/BeatmapOptionsButton.cs
+++ b/osu.Game/Screens/Select/Options/BeatmapOptionsButton.cs
@@ -77,7 +77,7 @@ namespace osu.Game.Screens.Select.Options
{
if (!e.Repeat && e.Key == HotKey)
{
- OnClick(state);
+ Click();
return true;
}
diff --git a/osu.Game/Screens/Select/SongSelect.cs b/osu.Game/Screens/Select/SongSelect.cs
index 82f77768db..6195a9788c 100644
--- a/osu.Game/Screens/Select/SongSelect.cs
+++ b/osu.Game/Screens/Select/SongSelect.cs
@@ -560,7 +560,7 @@ namespace osu.Game.Screens.Select
switch (e.Key)
{
case Key.Delete:
- if (state.Keyboard.ShiftPressed)
+ if (e.CurrentState.Keyboard.ShiftPressed)
{
if (!Beatmap.IsDefault)
delete(Beatmap.Value.BeatmapSetInfo);
diff --git a/osu.Game/Tests/Visual/EditorClockTestCase.cs b/osu.Game/Tests/Visual/EditorClockTestCase.cs
index 698d1a47a5..ebede74171 100644
--- a/osu.Game/Tests/Visual/EditorClockTestCase.cs
+++ b/osu.Game/Tests/Visual/EditorClockTestCase.cs
@@ -58,7 +58,7 @@ namespace osu.Game.Tests.Visual
protected override bool OnScroll(ScrollEvent e)
{
- if (e.Mouse.ScrollDelta.Y > 0)
+ if (e.ScrollDelta.Y > 0)
Clock.SeekBackward(true);
else
Clock.SeekForward(true);