diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs
index 51b240202..f457edd29 100644
--- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs
+++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs
@@ -787,10 +787,12 @@ namespace FlaxEditor.Viewport
///
public override DragDropEffect OnDragMove(ref Float2 location, DragData data)
{
- DragHandlers.ClearDragEffects();
var result = base.OnDragMove(ref location, data);
if (result != DragDropEffect.None)
+ {
+ DragHandlers.ClearDragEffects();
return result;
+ }
return DragHandlers.DragEnter(ref location, data);
}
diff --git a/Source/Editor/Viewport/PrefabWindowViewport.cs b/Source/Editor/Viewport/PrefabWindowViewport.cs
index a599615de..0a3b4b4e5 100644
--- a/Source/Editor/Viewport/PrefabWindowViewport.cs
+++ b/Source/Editor/Viewport/PrefabWindowViewport.cs
@@ -647,10 +647,12 @@ namespace FlaxEditor.Viewport
///
public override DragDropEffect OnDragMove(ref Float2 location, DragData data)
{
- DragHandlers.ClearDragEffects();
var result = base.OnDragMove(ref location, data);
if (result != DragDropEffect.None)
+ {
+ DragHandlers.ClearDragEffects();
return result;
+ }
return DragHandlers.DragEnter(ref location, data);
}
diff --git a/Source/Editor/Viewport/ViewportDraggingHelper.cs b/Source/Editor/Viewport/ViewportDraggingHelper.cs
index 3e6fce6ad..5c68b399a 100644
--- a/Source/Editor/Viewport/ViewportDraggingHelper.cs
+++ b/Source/Editor/Viewport/ViewportDraggingHelper.cs
@@ -65,7 +65,7 @@ namespace FlaxEditor.Viewport
{
if (_previewStaticModel)
debugDrawData.HighlightModel(_previewStaticModel, _previewModelEntryIndex);
- if (_previewBrushSurface.Brush != null)
+ if (_previewBrushSurface.Brush)
debugDrawData.HighlightBrushSurface(_previewBrushSurface);
}
@@ -120,10 +120,12 @@ namespace FlaxEditor.Viewport
if (_dragAssets.HasValidDrag && _dragAssets.Objects[0].IsOfType())
{
GetHitLocation(ref location, out var hit, out _, out _);
- ClearDragEffects();
var material = FlaxEngine.Content.LoadAsync(_dragAssets.Objects[0].ID);
- if (material.IsDecal)
+ if (material && material.IsDecal)
+ {
+ ClearDragEffects();
return;
+ }
if (hit is StaticModelNode staticModelNode)
{
@@ -135,6 +137,14 @@ namespace FlaxEditor.Viewport
{
_previewBrushSurface = brushSurfaceNode.Surface;
}
+ else
+ {
+ ClearDragEffects();
+ }
+ }
+ else
+ {
+ ClearDragEffects();
}
}
diff --git a/Source/Editor/ViewportDebugDrawData.cs b/Source/Editor/ViewportDebugDrawData.cs
index 7b5bee95c..d70ec9cfb 100644
--- a/Source/Editor/ViewportDebugDrawData.cs
+++ b/Source/Editor/ViewportDebugDrawData.cs
@@ -80,6 +80,8 @@ namespace FlaxEditor
/// The surface.
public void HighlightBrushSurface(BrushSurface surface)
{
+ if (surface.Brush == null)
+ return;
surface.Brush.GetVertices(surface.Index, out var vertices);
if (vertices.Length > 0)
{