diff --git a/osu.Game/Overlays/Settings/Sections/Graphics/LayoutSettings.cs b/osu.Game/Overlays/Settings/Sections/Graphics/LayoutSettings.cs
index 3d3b543d70..7acbf038d8 100644
--- a/osu.Game/Overlays/Settings/Sections/Graphics/LayoutSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/Graphics/LayoutSettings.cs
@@ -132,6 +132,15 @@ namespace osu.Game.Overlays.Settings.Sections.Graphics
}
},
};
+ }
+
+ protected override void LoadComplete()
+ {
+ base.LoadComplete();
+
+ scalingSettings.ForEach(s => bindPreviewEvent(s.Current));
+
+ windowModeDropdown.Current.ValueChanged += _ => updateResolutionDropdown();
windowModes.BindCollectionChanged((sender, args) =>
{
@@ -141,8 +150,6 @@ namespace osu.Game.Overlays.Settings.Sections.Graphics
windowModeDropdown.Hide();
}, true);
- windowModeDropdown.Current.ValueChanged += _ => updateResolutionDropdown();
-
currentDisplay.BindValueChanged(display => Schedule(() =>
{
resolutions.RemoveRange(1, resolutions.Count - 1);
@@ -159,8 +166,6 @@ namespace osu.Game.Overlays.Settings.Sections.Graphics
updateResolutionDropdown();
}), true);
- scalingSettings.ForEach(s => bindPreviewEvent(s.Current));
-
scalingMode.BindValueChanged(mode =>
{
scalingSettings.ClearTransforms();
@@ -181,11 +186,6 @@ namespace osu.Game.Overlays.Settings.Sections.Graphics
}
}
- ///
- /// Create a delayed bindable which only updates when a condition is met.
- ///
- /// The config bindable.
- /// A bindable which will propagate updates with a delay.
private void bindPreviewEvent(Bindable bindable)
{
bindable.ValueChanged += _ =>