diff --git a/osu.Game.Tests/Visual/Background/TestSceneUserDimContainer.cs b/osu.Game.Tests/Visual/Background/TestSceneUserDimContainer.cs
index f858174ff2..ecea80d6cc 100644
--- a/osu.Game.Tests/Visual/Background/TestSceneUserDimContainer.cs
+++ b/osu.Game.Tests/Visual/Background/TestSceneUserDimContainer.cs
@@ -165,6 +165,21 @@ namespace osu.Game.Tests.Visual.Background
AddAssert("Screen is dimmed and blur applied", () => songSelect.IsBackgroundDimmed() && songSelect.IsUserBlurApplied());
}
+ ///
+ /// Ensure is able to disable user-defined display settings.
+ ///
+ [Test]
+ public void DisableUserDisplaySettingsTest()
+ {
+ performFullSetup();
+ AddStep("Enable user dim", () => player.DimmableStoryboard.EnableUserDim.Value = true);
+ AddStep("Set user dim to max", () => player.DimmableStoryboard.)
+ waitForDim();
+ AddStep("Turn on IgnoreUserSettings", () => player.DimmableStoryboard.IgnoreUserSettings.Value = true);
+ waitForDim();
+ AddAssert("Check the background is undimmed", () => player.IsBackgroundUndimmed());
+ }
+
///
/// Ensure is properly accepting user-defined visual changes for a storyboard.
///
@@ -352,6 +367,8 @@ namespace osu.Game.Tests.Visual.Background
public new DimmableStoryboard DimmableStoryboard => base.DimmableStoryboard;
+ public bool IsBackgroundUndimmed() => ((FadeAccessibleBackground)Background).Colour == Color4.White;
+
// Whether or not the player should be allowed to load.
public bool BlockLoad;
diff --git a/osu.Game/Graphics/Containers/UserDimContainer.cs b/osu.Game/Graphics/Containers/UserDimContainer.cs
index 42a25a79b1..74d922704e 100644
--- a/osu.Game/Graphics/Containers/UserDimContainer.cs
+++ b/osu.Game/Graphics/Containers/UserDimContainer.cs
@@ -6,6 +6,7 @@ using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Game.Configuration;
+using osuTK.Graphics;
namespace osu.Game.Graphics.Containers
{
@@ -22,7 +23,7 @@ namespace osu.Game.Graphics.Containers
public readonly Bindable EnableUserDim = new Bindable(true);
///
- /// Whether or not user-configured settings relating to visibility of elements should be ignored
+ /// Whether or not user-configured settings relating to brightness of elements should be ignored
///
public readonly Bindable IgnoreUserSettings = new Bindable();
@@ -36,14 +37,14 @@ namespace osu.Game.Graphics.Containers
///
public bool ContentDisplayed { get; private set; }
+ public double DimLevel => EnableUserDim.Value && !IgnoreUserSettings.Value ? UserDimLevel.Value : 0;
+
protected Bindable UserDimLevel { get; private set; }
protected Bindable ShowStoryboard { get; private set; }
protected Bindable ShowVideo { get; private set; }
- protected double DimLevel => EnableUserDim.Value ? UserDimLevel.Value : 0;
-
protected override Container Content => dimContent;
private Container dimContent { get; }
@@ -90,7 +91,7 @@ namespace osu.Game.Graphics.Containers
ContentDisplayed = ShowDimContent;
dimContent.FadeTo(ContentDisplayed ? 1 : 0, BACKGROUND_FADE_DURATION, Easing.OutQuint);
- dimContent.FadeColour(OsuColour.Gray(1 - (float)DimLevel), BACKGROUND_FADE_DURATION, Easing.OutQuint);
+ dimContent.FadeColour(IgnoreUserSettings.Value ? OsuColour.Gray(1 - (float)DimLevel) : Color4.White, BACKGROUND_FADE_DURATION, Easing.OutQuint);
}
}
}