Fix cursor scale potentially not being updated if set too early

This commit is contained in:
Dean Herbert
2020-07-10 14:43:30 +09:00
parent ffbb70d827
commit e211ba5e7d
2 changed files with 7 additions and 5 deletions

View File

@ -30,7 +30,9 @@ namespace osu.Game.Rulesets.Osu.UI.Cursor
private readonly Drawable cursorTrail; private readonly Drawable cursorTrail;
public Bindable<float> CursorScale = new BindableFloat(1); public IBindable<float> CursorScale => cursorScale;
private readonly Bindable<float> cursorScale = new BindableFloat(1);
private Bindable<float> userCursorScale; private Bindable<float> userCursorScale;
private Bindable<bool> autoCursorScale; private Bindable<bool> autoCursorScale;
@ -68,13 +70,13 @@ namespace osu.Game.Rulesets.Osu.UI.Cursor
autoCursorScale = config.GetBindable<bool>(OsuSetting.AutoCursorSize); autoCursorScale = config.GetBindable<bool>(OsuSetting.AutoCursorSize);
autoCursorScale.ValueChanged += _ => calculateScale(); autoCursorScale.ValueChanged += _ => calculateScale();
CursorScale.ValueChanged += e => CursorScale.BindValueChanged(e =>
{ {
var newScale = new Vector2(e.NewValue); var newScale = new Vector2(e.NewValue);
ActiveCursor.Scale = newScale; ActiveCursor.Scale = newScale;
cursorTrail.Scale = newScale; cursorTrail.Scale = newScale;
}; }, true);
calculateScale(); calculateScale();
} }
@ -95,7 +97,7 @@ namespace osu.Game.Rulesets.Osu.UI.Cursor
scale *= GetScaleForCircleSize(beatmap.BeatmapInfo.BaseDifficulty.CircleSize); scale *= GetScaleForCircleSize(beatmap.BeatmapInfo.BaseDifficulty.CircleSize);
} }
CursorScale.Value = scale; cursorScale.Value = scale;
var newScale = new Vector2(scale); var newScale = new Vector2(scale);

View File

@ -22,7 +22,7 @@ namespace osu.Game.Rulesets.Osu.UI
private OsuClickToResumeCursor clickToResumeCursor; private OsuClickToResumeCursor clickToResumeCursor;
private OsuCursorContainer localCursorContainer; private OsuCursorContainer localCursorContainer;
private Bindable<float> localCursorScale; private IBindable<float> localCursorScale;
public override CursorContainer LocalCursor => State.Value == Visibility.Visible ? localCursorContainer : null; public override CursorContainer LocalCursor => State.Value == Visibility.Visible ? localCursorContainer : null;