diff --git a/osu.Game/Rulesets/UI/RulesetInputManager.cs b/osu.Game/Rulesets/UI/RulesetInputManager.cs index 8046e9f9b4..a3120179a4 100644 --- a/osu.Game/Rulesets/UI/RulesetInputManager.cs +++ b/osu.Game/Rulesets/UI/RulesetInputManager.cs @@ -222,23 +222,16 @@ namespace osu.Game.Rulesets.UI mouseDisabled = config.GetBindable(OsuSetting.MouseDisableButtons); } - protected override void TransformState(InputState state) + protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) { - base.TransformState(state); + if (mouseDisabled.Value && (args.Button == MouseButton.Left || args.Button == MouseButton.Right)) return false; + return base.OnMouseDown(state, args); + } - // we don't want to transform the state if a replay is present (for now, at least). - if (replayInputHandler != null) return; - - var mouse = state.Mouse as Framework.Input.MouseState; - - if (mouse != null) - { - if (mouseDisabled.Value) - { - mouse.SetPressed(MouseButton.Left, false); - mouse.SetPressed(MouseButton.Right, false); - } - } + protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) + { + if (!CurrentState.Mouse.IsPressed(args.Button)) return false; + return base.OnMouseUp(state, args); } #endregion