diff --git a/osu.Game/Graphics/UserInterface/OsuCheckbox.cs b/osu.Game/Graphics/UserInterface/OsuCheckbox.cs
index 6593531099..517f83daa9 100644
--- a/osu.Game/Graphics/UserInterface/OsuCheckbox.cs
+++ b/osu.Game/Graphics/UserInterface/OsuCheckbox.cs
@@ -18,6 +18,11 @@ namespace osu.Game.Graphics.UserInterface
public Color4 UncheckedColor { get; set; } = Color4.White;
public int FadeDuration { get; set; }
+ ///
+ /// Whether to play sounds when the state changes as a result of user interaction.
+ ///
+ protected virtual bool PlaySoundsOnUserChange => true;
+
public string LabelText
{
set
@@ -96,10 +101,14 @@ namespace osu.Game.Graphics.UserInterface
protected override void OnUserChange(bool value)
{
base.OnUserChange(value);
- if (value)
- sampleChecked?.Play();
- else
- sampleUnchecked?.Play();
+
+ if (PlaySoundsOnUserChange)
+ {
+ if (value)
+ sampleChecked?.Play();
+ else
+ sampleUnchecked?.Play();
+ }
}
}
}
diff --git a/osu.Game/Screens/OnlinePlay/FreeModSelectOverlay.cs b/osu.Game/Screens/OnlinePlay/FreeModSelectOverlay.cs
index 628199309a..608e58b534 100644
--- a/osu.Game/Screens/OnlinePlay/FreeModSelectOverlay.cs
+++ b/osu.Game/Screens/OnlinePlay/FreeModSelectOverlay.cs
@@ -110,6 +110,8 @@ namespace osu.Game.Screens.OnlinePlay
{
public Action Changed;
+ protected override bool PlaySoundsOnUserChange => false;
+
protected override void OnUserChange(bool value)
{
base.OnUserChange(value);