From f4b7db5a7bfb89e18b5ac83bbd89ca339e07a6eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Sat, 27 Nov 2021 14:36:34 +0100 Subject: [PATCH 1/2] Ensure correct disabled beatmap callback scheduling in now playing overlay --- osu.Game/Overlays/NowPlayingOverlay.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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(); From db49d99cc0e86901357538c515da4a3f58a26361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Sat, 27 Nov 2021 14:39:12 +0100 Subject: [PATCH 2/2] Ensure correct disabled ruleset callback scheduling in ruleset selector --- osu.Game/Overlays/Toolbar/ToolbarRulesetSelector.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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()