diff --git a/osu.Game/Screens/Select/PanelBeatmapStandalone.SpreadDisplay.cs b/osu.Game/Screens/Select/PanelBeatmapStandalone.SpreadDisplay.cs index 1e4efe495c..1d538ccacc 100644 --- a/osu.Game/Screens/Select/PanelBeatmapStandalone.SpreadDisplay.cs +++ b/osu.Game/Screens/Select/PanelBeatmapStandalone.SpreadDisplay.cs @@ -26,6 +26,7 @@ namespace osu.Game.Screens.Select { public Bindable Beatmap { get; } = new Bindable(); public Bindable StarDifficulty { get; } = new Bindable(); + public BindableBool Selected { get; } = new BindableBool(); protected override Colour4 DimColour => Colour4.White; @@ -140,6 +141,8 @@ namespace osu.Game.Screens.Select StarDifficulty.BindValueChanged(_ => updateBeatmap()); showConvertedBeatmaps.BindValueChanged(_ => updateBeatmap()); scopedBeatmapSet.BindValueChanged(_ => updateBeatmap(), true); + Selected.BindValueChanged(_ => updateEnabled()); + scopedBeatmapSet.BindDisabledChanged(_ => updateEnabled(), true); Enabled.BindValueChanged(_ => updateAppearance(), true); FinishTransforms(true); } @@ -254,6 +257,11 @@ namespace osu.Game.Screens.Select base.OnHoverLost(e); } + private void updateEnabled() + { + Enabled.Value = Selected.Value && !scopedBeatmapSet.Disabled; + } + private void updateAppearance() { bool isInteractable = Enabled.Value && IsHovered; diff --git a/osu.Game/Screens/Select/PanelBeatmapStandalone.cs b/osu.Game/Screens/Select/PanelBeatmapStandalone.cs index 36e9c671dd..896328eefb 100644 --- a/osu.Game/Screens/Select/PanelBeatmapStandalone.cs +++ b/osu.Game/Screens/Select/PanelBeatmapStandalone.cs @@ -194,6 +194,7 @@ namespace osu.Game.Screens.Select { Origin = Anchor.CentreLeft, Anchor = Anchor.CentreLeft, + Selected = { BindTarget = Selected }, } }, } @@ -214,7 +215,6 @@ namespace osu.Game.Screens.Select Selected.BindValueChanged(s => { Expanded.Value = s.NewValue; - spreadDisplay.Enabled.Value = s.NewValue; }, true); }