diff --git a/Source/Editor/Windows/Assets/AnimationGraphWindow.cs b/Source/Editor/Windows/Assets/AnimationGraphWindow.cs
index 1cf03f062..aacf1aa4e 100644
--- a/Source/Editor/Windows/Assets/AnimationGraphWindow.cs
+++ b/Source/Editor/Windows/Assets/AnimationGraphWindow.cs
@@ -441,6 +441,7 @@ namespace FlaxEditor.Windows.Assets
{
if (IsDisposing)
return;
+ base.OnDestroy();
Animations.DebugFlow -= OnDebugFlow;
_properties = null;
@@ -448,8 +449,6 @@ namespace FlaxEditor.Windows.Assets
_debugPicker = null;
_showNodesButton = null;
_previewTab = null;
-
- base.OnDestroy();
}
///
diff --git a/Source/Editor/Windows/Assets/AnimationWindow.cs b/Source/Editor/Windows/Assets/AnimationWindow.cs
index 058bf3622..c65b8caab 100644
--- a/Source/Editor/Windows/Assets/AnimationWindow.cs
+++ b/Source/Editor/Windows/Assets/AnimationWindow.cs
@@ -438,6 +438,10 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
+ base.OnDestroy();
+
if (_undo != null)
{
_undo.Enabled = false;
@@ -454,8 +458,6 @@ namespace FlaxEditor.Windows.Assets
_saveButton = null;
_undoButton = null;
_redoButton = null;
-
- base.OnDestroy();
}
}
}
diff --git a/Source/Editor/Windows/Assets/AudioClipWindow.cs b/Source/Editor/Windows/Assets/AudioClipWindow.cs
index 35072620b..5336b2e3c 100644
--- a/Source/Editor/Windows/Assets/AudioClipWindow.cs
+++ b/Source/Editor/Windows/Assets/AudioClipWindow.cs
@@ -289,6 +289,10 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
+ base.OnDestroy();
+
if (_previewSource)
{
_preview.Source = null;
@@ -297,8 +301,6 @@ namespace FlaxEditor.Windows.Assets
_previewSource = null;
}
FlaxEngine.Object.Destroy(ref _previewScene);
-
- base.OnDestroy();
}
///
diff --git a/Source/Editor/Windows/Assets/BehaviorTreeWindow.cs b/Source/Editor/Windows/Assets/BehaviorTreeWindow.cs
index 3d6399365..0df851f5b 100644
--- a/Source/Editor/Windows/Assets/BehaviorTreeWindow.cs
+++ b/Source/Editor/Windows/Assets/BehaviorTreeWindow.cs
@@ -571,14 +571,14 @@ namespace FlaxEditor.Windows.Assets
{
if (IsDisposing)
return;
+ base.OnDestroy();
+
ScriptsBuilder.ScriptsReloadBegin -= OnScriptsReloadBegin;
_undo.Enabled = false;
_nodePropertiesEditor.Deselect();
_knowledgePropertiesEditor.Deselect();
_undo.Clear();
_behaviorPicker = null;
-
- base.OnDestroy();
}
///
diff --git a/Source/Editor/Windows/Assets/CollisionDataWindow.cs b/Source/Editor/Windows/Assets/CollisionDataWindow.cs
index 7cddd8eed..b15478b43 100644
--- a/Source/Editor/Windows/Assets/CollisionDataWindow.cs
+++ b/Source/Editor/Windows/Assets/CollisionDataWindow.cs
@@ -307,6 +307,8 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
base.OnDestroy();
Object.Destroy(ref _collisionWiresShowActor);
diff --git a/Source/Editor/Windows/Assets/JsonAssetWindow.cs b/Source/Editor/Windows/Assets/JsonAssetWindow.cs
index dc1e1e71f..5bc6e62c5 100644
--- a/Source/Editor/Windows/Assets/JsonAssetWindow.cs
+++ b/Source/Editor/Windows/Assets/JsonAssetWindow.cs
@@ -320,14 +320,16 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
+ base.OnDestroy();
+
if (_isRegisteredForScriptsReload)
{
_isRegisteredForScriptsReload = false;
ScriptsBuilder.ScriptsReloadBegin -= OnScriptsReloadBegin;
}
_typeText = null;
-
- base.OnDestroy();
}
}
}
diff --git a/Source/Editor/Windows/Assets/ModelBaseWindow.cs b/Source/Editor/Windows/Assets/ModelBaseWindow.cs
index 52dcff08a..6e26a4bb1 100644
--- a/Source/Editor/Windows/Assets/ModelBaseWindow.cs
+++ b/Source/Editor/Windows/Assets/ModelBaseWindow.cs
@@ -90,11 +90,13 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
+ base.OnDestroy();
+
Presenter.Deselect();
Presenter = null;
Proxy = null;
-
- base.OnDestroy();
}
}
diff --git a/Source/Editor/Windows/Assets/ParticleSystemWindow.cs b/Source/Editor/Windows/Assets/ParticleSystemWindow.cs
index 2708f8c87..7e9968060 100644
--- a/Source/Editor/Windows/Assets/ParticleSystemWindow.cs
+++ b/Source/Editor/Windows/Assets/ParticleSystemWindow.cs
@@ -569,6 +569,10 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
+ base.OnDestroy();
+
if (_undo != null)
_undo.Enabled = false;
_propertiesEditor?.Deselect();
@@ -579,8 +583,6 @@ namespace FlaxEditor.Windows.Assets
_saveButton = null;
_undoButton = null;
_redoButton = null;
-
- base.OnDestroy();
}
}
}
diff --git a/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs b/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs
index 6a786cb3a..0e8f1c3ab 100644
--- a/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs
+++ b/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs
@@ -251,6 +251,10 @@ namespace FlaxEditor.Windows.Assets
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
+ base.OnDestroy();
+
_window = null;
_dragAssets = null;
_dragActorType = null;
@@ -258,8 +262,6 @@ namespace FlaxEditor.Windows.Assets
_dragScriptItems = null;
_dragHandlers?.Clear();
_dragHandlers = null;
-
- base.OnDestroy();
}
}
diff --git a/Source/Editor/Windows/Assets/PrefabWindow.cs b/Source/Editor/Windows/Assets/PrefabWindow.cs
index 7ee8ecff0..5efc56726 100644
--- a/Source/Editor/Windows/Assets/PrefabWindow.cs
+++ b/Source/Editor/Windows/Assets/PrefabWindow.cs
@@ -536,14 +536,16 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
+ base.OnDestroy();
+
Editor.Prefabs.PrefabApplied -= OnPrefabApplied;
ScriptsBuilder.ScriptsReloadBegin -= OnScriptsReloadBegin;
ScriptsBuilder.ScriptsReloadEnd -= OnScriptsReloadEnd;
_undo.Dispose();
Graph.Dispose();
-
- base.OnDestroy();
}
///
diff --git a/Source/Editor/Windows/Assets/SceneAnimationWindow.cs b/Source/Editor/Windows/Assets/SceneAnimationWindow.cs
index 20219a079..65007b0c7 100644
--- a/Source/Editor/Windows/Assets/SceneAnimationWindow.cs
+++ b/Source/Editor/Windows/Assets/SceneAnimationWindow.cs
@@ -594,7 +594,12 @@ namespace FlaxEditor.Windows.Assets
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
CancelRendering();
+
+ base.OnDestroy();
+
_window.Timeline.Enabled = true;
_window.Timeline.Visible = true;
_window._toolstrip.Enabled = true;
@@ -602,8 +607,6 @@ namespace FlaxEditor.Windows.Assets
_window = null;
_presenter = null;
_options = null;
-
- base.OnDestroy();
}
}
@@ -1030,6 +1033,10 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
+ base.OnDestroy();
+
Level.ActorDeleted -= OnActorDeleted;
if (_previewButton.Checked)
@@ -1056,8 +1063,6 @@ namespace FlaxEditor.Windows.Assets
_redoButton = null;
_renderButton = null;
_previewPlayerPicker = null;
-
- base.OnDestroy();
}
}
}
diff --git a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs
index f54fe9d73..f2d3bdf03 100644
--- a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs
+++ b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs
@@ -734,6 +734,8 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
base.OnDestroy();
Object.Destroy(ref _highlightActor);
diff --git a/Source/Editor/Windows/Assets/TextureWindow.cs b/Source/Editor/Windows/Assets/TextureWindow.cs
index 8084847e4..b5f428285 100644
--- a/Source/Editor/Windows/Assets/TextureWindow.cs
+++ b/Source/Editor/Windows/Assets/TextureWindow.cs
@@ -184,11 +184,13 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
+ base.OnDestroy();
+
Presenter.Deselect();
Presenter = null;
Proxy = null;
-
- base.OnDestroy();
}
}
diff --git a/Source/Editor/Windows/Assets/VideoWindow.cs b/Source/Editor/Windows/Assets/VideoWindow.cs
index 958608914..36f119458 100644
--- a/Source/Editor/Windows/Assets/VideoWindow.cs
+++ b/Source/Editor/Windows/Assets/VideoWindow.cs
@@ -199,12 +199,12 @@ namespace FlaxEditor.Windows.Assets
{
if (IsDisposing)
return;
+ base.OnDestroy();
+
_videoPlayer.Stop();
Object.Destroy(ref _videoPlayer);
_item.RemoveReference(this);
_item = null;
-
- base.OnDestroy();
}
///
diff --git a/Source/Editor/Windows/Assets/VisualScriptWindow.cs b/Source/Editor/Windows/Assets/VisualScriptWindow.cs
index f41936dd0..c218fe0d8 100644
--- a/Source/Editor/Windows/Assets/VisualScriptWindow.cs
+++ b/Source/Editor/Windows/Assets/VisualScriptWindow.cs
@@ -1373,13 +1373,15 @@ namespace FlaxEditor.Windows.Assets
///
public override void OnDestroy()
{
+ if (IsDisposing)
+ return;
+ base.OnDestroy();
+
_undo.Enabled = false;
_propertiesEditor.Deselect();
_undo.Clear();
_debugObjectPicker = null;
_debugToolstripControls = null;
-
- base.OnDestroy();
}
///