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
{