diff --git a/Dalamud/Interface/Windowing/Window.cs b/Dalamud/Interface/Windowing/Window.cs index 51a6549e7..032f6e93e 100644 --- a/Dalamud/Interface/Windowing/Window.cs +++ b/Dalamud/Interface/Windowing/Window.cs @@ -33,7 +33,7 @@ namespace Dalamud.Interface.Windowing; /// public abstract class Window { - private const float FadeInOutTime = 0.08f; + private const float FadeInOutTime = 0.072f; private static readonly ModuleLog Log = new("WindowSystem"); @@ -52,7 +52,7 @@ public abstract class Window private bool presetDirty = false; private bool pushedFadeInAlpha = false; - private float fadeInTimer = 1f; + private float fadeInTimer = 0f; private float fadeOutTimer = 0f; private IDrawListTextureWrap? fadeOutTexture = null; private Vector2 fadeOutSize = Vector2.Zero; @@ -322,6 +322,14 @@ public abstract class Window { } + /// + /// Code to be executed when the window is safe to be disposed or removed from the window system. + /// Doing so in may result in animations not playing correctly. + /// + public virtual void OnSafeToRemove() + { + } + /// /// Code to be executed every frame, even when the window is collapsed. /// @@ -359,6 +367,7 @@ public abstract class Window { this.fadeOutTexture.Dispose(); this.fadeOutTexture = null; + this.OnSafeToRemove(); } else {