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(); } ///