From f00dd27fcdd762eccdec2ec780d427c0da023518 Mon Sep 17 00:00:00 2001
From: Dean Herbert <pe@ppy.sh>
Date: Tue, 24 May 2022 17:50:23 +0900
Subject: [PATCH 1/2] Move `OverlayColourProvider` provisioning of
 `RoundedButton` to `SettingsButton` for now

---
 osu.Game/Graphics/UserInterfaceV2/RoundedButton.cs | 9 +++++----
 osu.Game/Overlays/Settings/SettingsButton.cs       | 9 +++++++++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/osu.Game/Graphics/UserInterfaceV2/RoundedButton.cs b/osu.Game/Graphics/UserInterfaceV2/RoundedButton.cs
index 3c0c3b69e8..cb8c63371d 100644
--- a/osu.Game/Graphics/UserInterfaceV2/RoundedButton.cs
+++ b/osu.Game/Graphics/UserInterfaceV2/RoundedButton.cs
@@ -2,13 +2,11 @@
 // See the LICENCE file in the repository root for full licence text.
 
 using System.Collections.Generic;
-using JetBrains.Annotations;
 using osu.Framework.Allocation;
 using osu.Framework.Graphics;
 using osu.Framework.Graphics.Containers;
 using osu.Framework.Localisation;
 using osu.Game.Graphics.UserInterface;
-using osu.Game.Overlays;
 
 namespace osu.Game.Graphics.UserInterfaceV2
 {
@@ -27,9 +25,12 @@ namespace osu.Game.Graphics.UserInterfaceV2
         }
 
         [BackgroundDependencyLoader(true)]
-        private void load([CanBeNull] OverlayColourProvider overlayColourProvider, OsuColour colours)
+        private void load(OsuColour colours)
         {
-            DefaultBackgroundColour = overlayColourProvider?.Highlight1 ?? colours.Blue3;
+            // According to flyte, buttons are supposed to have explicit colours for now.
+            // Not sure this is the correct direction, but we haven't decided on an `OverlayColourProvider` stand-in yet.
+            // This is a better default. See `SettingsButton` for an override which uses `OverlayColourProvider`.
+            DefaultBackgroundColour = colours.Blue3;
         }
 
         protected override void LoadComplete()
diff --git a/osu.Game/Overlays/Settings/SettingsButton.cs b/osu.Game/Overlays/Settings/SettingsButton.cs
index 10aea92b22..9e4dc763ec 100644
--- a/osu.Game/Overlays/Settings/SettingsButton.cs
+++ b/osu.Game/Overlays/Settings/SettingsButton.cs
@@ -3,9 +3,12 @@
 
 using System.Collections.Generic;
 using System.Linq;
+using JetBrains.Annotations;
+using osu.Framework.Allocation;
 using osu.Framework.Graphics;
 using osu.Framework.Graphics.Cursor;
 using osu.Framework.Localisation;
+using osu.Game.Graphics;
 using osu.Game.Graphics.UserInterfaceV2;
 
 namespace osu.Game.Overlays.Settings
@@ -18,6 +21,12 @@ namespace osu.Game.Overlays.Settings
             Padding = new MarginPadding { Left = SettingsPanel.CONTENT_MARGINS, Right = SettingsPanel.CONTENT_MARGINS };
         }
 
+        [BackgroundDependencyLoader(true)]
+        private void load([CanBeNull] OverlayColourProvider overlayColourProvider, OsuColour colours)
+        {
+            DefaultBackgroundColour = overlayColourProvider?.Highlight1 ?? colours.Blue3;
+        }
+
         public LocalisableString TooltipText { get; set; }
 
         public override IEnumerable<LocalisableString> FilterTerms

From 33fd1555f23a45c4d325c4db4d4d2aa643a6c0c1 Mon Sep 17 00:00:00 2001
From: Dean Herbert <pe@ppy.sh>
Date: Tue, 24 May 2022 18:42:40 +0900
Subject: [PATCH 2/2] Update `TestSceneRoundedButton` with new colour
 assertions

---
 .../UserInterface/TestSceneRoundedButton.cs   | 37 +++++++++++++++----
 1 file changed, 29 insertions(+), 8 deletions(-)

diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneRoundedButton.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneRoundedButton.cs
index f45c55d912..454a71e6d2 100644
--- a/osu.Game.Tests/Visual/UserInterface/TestSceneRoundedButton.cs
+++ b/osu.Game.Tests/Visual/UserInterface/TestSceneRoundedButton.cs
@@ -5,9 +5,12 @@ using System.Linq;
 using NUnit.Framework;
 using osu.Framework.Bindables;
 using osu.Framework.Graphics;
+using osu.Framework.Graphics.Containers;
 using osu.Framework.Testing;
+using osu.Game.Graphics;
 using osu.Game.Graphics.UserInterfaceV2;
 using osu.Game.Overlays;
+using osu.Game.Overlays.Settings;
 
 namespace osu.Game.Tests.Visual.UserInterface
 {
@@ -15,14 +18,31 @@ namespace osu.Game.Tests.Visual.UserInterface
     {
         private readonly BindableBool enabled = new BindableBool(true);
 
-        protected override Drawable CreateContent() => new RoundedButton
+        protected override Drawable CreateContent()
         {
-            Width = 400,
-            Text = "Test button",
-            Anchor = Anchor.Centre,
-            Origin = Anchor.Centre,
-            Enabled = { BindTarget = enabled },
-        };
+            return new FillFlowContainer
+            {
+                RelativeSizeAxes = Axes.Both,
+                Children = new Drawable[]
+                {
+                    new RoundedButton
+                    {
+                        Width = 400,
+                        Text = "Test button",
+                        Anchor = Anchor.Centre,
+                        Origin = Anchor.Centre,
+                        Enabled = { BindTarget = enabled },
+                    },
+                    new SettingsButton
+                    {
+                        Text = "Test button",
+                        Anchor = Anchor.Centre,
+                        Origin = Anchor.Centre,
+                        Enabled = { BindTarget = enabled },
+                    },
+                }
+            };
+        }
 
         [Test]
         public void TestDisabled()
@@ -34,7 +54,8 @@ namespace osu.Game.Tests.Visual.UserInterface
         public void TestBackgroundColour()
         {
             AddStep("set red scheme", () => CreateThemedContent(OverlayColourScheme.Red));
-            AddAssert("first button has correct colour", () => Cell(0, 1).ChildrenOfType<RoundedButton>().First().BackgroundColour == new OverlayColourProvider(OverlayColourScheme.Red).Highlight1);
+            AddAssert("rounded button has correct colour", () => Cell(0, 1).ChildrenOfType<RoundedButton>().First().BackgroundColour == new OsuColour().Blue3);
+            AddAssert("settings button has correct colour", () => Cell(0, 1).ChildrenOfType<SettingsButton>().First().BackgroundColour == new OverlayColourProvider(OverlayColourScheme.Red).Highlight1);
         }
     }
 }