diff --git a/osu.Game/Overlays/NowPlayingOverlay.cs b/osu.Game/Overlays/NowPlayingOverlay.cs index f37e6bedf7..4dd23c0008 100644 --- a/osu.Game/Overlays/NowPlayingOverlay.cs +++ b/osu.Game/Overlays/NowPlayingOverlay.cs @@ -214,7 +214,8 @@ namespace osu.Game.Overlays { base.LoadComplete(); - beatmap.BindDisabledChanged(beatmapDisabledChanged, true); + beatmap.BindDisabledChanged(_ => Scheduler.AddOnce(beatmapDisabledChanged)); + beatmapDisabledChanged(); musicController.TrackChanged += trackChanged; trackChanged(beatmap.Value); @@ -318,8 +319,10 @@ namespace osu.Game.Overlays }; } - private void beatmapDisabledChanged(bool disabled) + private void beatmapDisabledChanged() { + bool disabled = beatmap.Disabled; + if (disabled) playlist?.Hide(); diff --git a/osu.Game/Overlays/Toolbar/ToolbarRulesetSelector.cs b/osu.Game/Overlays/Toolbar/ToolbarRulesetSelector.cs index 9ca105ee7f..6e5fbf6efb 100644 --- a/osu.Game/Overlays/Toolbar/ToolbarRulesetSelector.cs +++ b/osu.Game/Overlays/Toolbar/ToolbarRulesetSelector.cs @@ -68,13 +68,19 @@ namespace osu.Game.Overlays.Toolbar { base.LoadComplete(); - Current.BindDisabledChanged(disabled => this.FadeColour(disabled ? Color4.Gray : Color4.White, 300), true); - Current.BindValueChanged(_ => moveLineToCurrent()); + Current.BindDisabledChanged(_ => Scheduler.AddOnce(currentDisabledChanged)); + currentDisabledChanged(); + Current.BindValueChanged(_ => moveLineToCurrent()); // Scheduled to allow the button flow layout to be computed before the line position is updated ScheduleAfterChildren(moveLineToCurrent); } + private void currentDisabledChanged() + { + this.FadeColour(Current.Disabled ? Color4.Gray : Color4.White, 300); + } + private bool hasInitialPosition; private void moveLineToCurrent()