diff --git a/osu.Game/Graphics/UserInterface/OsuTabControl.cs b/osu.Game/Graphics/UserInterface/OsuTabControl.cs index 9bdd227957..ca623b7775 100644 --- a/osu.Game/Graphics/UserInterface/OsuTabControl.cs +++ b/osu.Game/Graphics/UserInterface/OsuTabControl.cs @@ -21,19 +21,16 @@ namespace osu.Game.Graphics.UserInterface { public class OsuTabControl : TabControl { - protected readonly Bindable AccentColourBindable = new Bindable(); + private Color4 accentColour; public Color4 AccentColour { - get => AccentColourBindable.Value; + get => accentColour; set { - AccentColourBindable.Value = value; + accentColour = value; - if (Dropdown is IHasAccentColour dropdown) - dropdown.AccentColour = value; - foreach (var i in TabContainer.Children.OfType()) - i.AccentColour = value; + OnAccentColourChanged(value); } } @@ -93,6 +90,14 @@ namespace osu.Game.Graphics.UserInterface strip.Width = Interpolation.ValueAt(Math.Clamp(Clock.ElapsedFrameTime, 0, 1000), strip.Width, StripWidth, 0, 500, Easing.OutQuint); } + protected virtual void OnAccentColourChanged(Color4 colour) + { + if (Dropdown is IHasAccentColour dropdown) + dropdown.AccentColour = colour; + foreach (var i in TabContainer.Children.OfType()) + i.AccentColour = colour; + } + public class OsuTabItem : TabItem, IHasAccentColour { protected readonly SpriteText Text; diff --git a/osu.Game/Overlays/OverlayTabControl.cs b/osu.Game/Overlays/OverlayTabControl.cs index 619729acae..aa79dde13c 100644 --- a/osu.Game/Overlays/OverlayTabControl.cs +++ b/osu.Game/Overlays/OverlayTabControl.cs @@ -36,10 +36,10 @@ namespace osu.Game.Overlays }); } - protected override void LoadComplete() + protected override void OnAccentColourChanged(Color4 colour) { - base.LoadComplete(); - AccentColourBindable.BindValueChanged(colour => bar.Colour = colour.NewValue, true); + base.OnAccentColourChanged(colour); + bar.Colour = colour; } protected override Dropdown CreateDropdown() => null;