diff --git a/osu.Game/Screens/OnlinePlay/Match/RoomSubScreen.cs b/osu.Game/Screens/OnlinePlay/Match/RoomSubScreen.cs
index 13b2c37ded..61798b5413 100644
--- a/osu.Game/Screens/OnlinePlay/Match/RoomSubScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Match/RoomSubScreen.cs
@@ -15,9 +15,12 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Cursor;
using osu.Framework.Graphics.Shapes;
+using osu.Framework.Input.Bindings;
+using osu.Framework.Input.Events;
using osu.Framework.Screens;
using osu.Game.Audio;
using osu.Game.Beatmaps;
+using osu.Game.Input.Bindings;
using osu.Game.Online.Rooms;
using osu.Game.Overlays;
using osu.Game.Overlays.Mods;
@@ -473,8 +476,19 @@ namespace osu.Game.Screens.OnlinePlay.Match
/// The room to change the settings of.
protected abstract RoomSettingsOverlay CreateRoomSettingsOverlay(Room room);
- public class UserModSelectButton : PurpleTriangleButton
+ public class UserModSelectButton : PurpleTriangleButton, IKeyBindingHandler
{
+ public virtual bool OnPressed(KeyBindingPressEvent e)
+ {
+ if (e.Action == GlobalAction.ToggleModSelection && !e.Repeat)
+ {
+ TriggerClick();
+ return true;
+ }
+ return false;
+ }
+
+ public virtual void OnReleased(KeyBindingReleaseEvent e) { }
}
protected override void Dispose(bool isDisposing)