From 79910df9593b8478419b4eb2f4be12b0cfd1dbf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 26 Oct 2023 15:46:32 +0200 Subject: [PATCH] Fix catch distance snap provider not hiding slider properly Regressed in https://github.com/ppy/osu/pull/25171. The old code was kinda dependent on correct order of setting `Disabled`. `CatchHitObjectComposer` would disable distance spacing in its BDL, and then via the base `DistancedHitObjectComposer.LoadComplete()`, the slider would be faded out. The switch to composition broke that ordering. To fix, stop relying on ordering and just respond to changes as they come. That's what bindables are for. --- osu.Game/Rulesets/Edit/ComposerDistanceSnapProvider.cs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/osu.Game/Rulesets/Edit/ComposerDistanceSnapProvider.cs b/osu.Game/Rulesets/Edit/ComposerDistanceSnapProvider.cs index 0b1809e7d9..ddf539771d 100644 --- a/osu.Game/Rulesets/Edit/ComposerDistanceSnapProvider.cs +++ b/osu.Game/Rulesets/Edit/ComposerDistanceSnapProvider.cs @@ -98,12 +98,6 @@ namespace osu.Game.Rulesets.Edit } }); - if (DistanceSpacingMultiplier.Disabled) - { - distanceSpacingSlider.Hide(); - return; - } - DistanceSpacingMultiplier.Value = editorBeatmap.BeatmapInfo.DistanceSpacing; DistanceSpacingMultiplier.BindValueChanged(multiplier => { @@ -116,6 +110,8 @@ namespace osu.Game.Rulesets.Edit editorBeatmap.BeatmapInfo.DistanceSpacing = multiplier.NewValue; }, true); + DistanceSpacingMultiplier.BindDisabledChanged(disabled => distanceSpacingSlider.Alpha = disabled ? 0 : 1, true); + // Manual binding to handle enabling distance spacing when the slider is interacted with. distanceSpacingSlider.Current.BindValueChanged(spacing => {