mirror of https://github.com/ppy/osu
Fix SkinChanged events triggering after disposal (#5461)
Fix SkinChanged events triggering after disposal Co-authored-by: Dan Balasescu <1329837+smoogipoo@users.noreply.github.com>
This commit is contained in:
commit
d99408e979
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System;
|
||||
|
@ -36,12 +36,15 @@ private void load(ISkinSource source)
|
|||
skin.SourceChanged += onChange;
|
||||
}
|
||||
|
||||
private void onChange() => SkinChanged(skin, allowDefaultFallback);
|
||||
private void onChange() =>
|
||||
// schedule required to avoid calls after disposed.
|
||||
// note that this has the side-effect of components only performing a skin change when they are alive.
|
||||
Scheduler.AddOnce(() => SkinChanged(skin, allowDefaultFallback));
|
||||
|
||||
protected override void LoadAsyncComplete()
|
||||
{
|
||||
base.LoadAsyncComplete();
|
||||
onChange();
|
||||
SkinChanged(skin, allowDefaultFallback);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
Loading…
Reference in New Issue