diff --git a/Source/Editor/Gizmo/ViewportRubberBandSelector.cs b/Source/Editor/Gizmo/ViewportRubberBandSelector.cs index 0381c6535..33caf5c8d 100644 --- a/Source/Editor/Gizmo/ViewportRubberBandSelector.cs +++ b/Source/Editor/Gizmo/ViewportRubberBandSelector.cs @@ -38,7 +38,7 @@ public class ViewportRubberBandSelector /// True if selection started, otherwise false. public bool TryStartingRubberBandSelection() { - if (!_isRubberBandSpanning && !_owner.Gizmos.Active.IsControllingMouse && !_owner.IsRightMouseButtonDown) + if (!_isRubberBandSpanning && _owner.Gizmos.Active != null && !_owner.Gizmos.Active.IsControllingMouse && !_owner.IsRightMouseButtonDown) { _tryStartRubberBand = true; return true; @@ -90,7 +90,7 @@ public class ViewportRubberBandSelector _rubberBandRect = new Rectangle(_cachedStartingMousePosition, Float2.Zero); _tryStartRubberBand = false; } - else if (_isRubberBandSpanning && !_owner.Gizmos.Active.IsControllingMouse && !_owner.IsRightMouseButtonDown) + else if (_isRubberBandSpanning && _owner.Gizmos.Active != null && !_owner.Gizmos.Active.IsControllingMouse && !_owner.IsRightMouseButtonDown) { _rubberBandRect.Width = mousePosition.X - _cachedStartingMousePosition.X; _rubberBandRect.Height = mousePosition.Y - _cachedStartingMousePosition.Y; diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs index 943bb6e3c..c22cddb6a 100644 --- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs +++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs @@ -7,14 +7,11 @@ using FlaxEditor.Gizmo; using FlaxEditor.GUI.ContextMenu; using FlaxEditor.SceneGraph; using FlaxEditor.Scripting; -using FlaxEditor.Tools; using FlaxEditor.Viewport.Modes; using FlaxEditor.Windows; using FlaxEngine; using FlaxEngine.Gizmo; using FlaxEngine.GUI; -using FlaxEngine.Tools; - using Object = FlaxEngine.Object; namespace FlaxEditor.Viewport @@ -26,10 +23,8 @@ namespace FlaxEditor.Viewport public class MainEditorGizmoViewport : EditorGizmoViewport, IEditorPrimitivesOwner { private readonly Editor _editor; - private readonly ContextMenuButton _showGridButton; private readonly ContextMenuButton _showNavigationButton; - private SelectionOutline _customSelectionOutline; /// @@ -218,7 +213,7 @@ namespace FlaxEditor.Viewport TransformGizmo.ApplyTransformation += ApplyTransform; TransformGizmo.Duplicate += _editor.SceneEditing.Duplicate; Gizmos.Active = TransformGizmo; - + // Add rubber band selector _rubberBandSelector = new ViewportRubberBandSelector(this); @@ -375,10 +370,10 @@ namespace FlaxEditor.Viewport { Gizmos[i].Draw(ref renderContext); } - + // Draw RubberBand for rect selection _rubberBandSelector.Draw(context, target, targetDepth); - + // Draw selected objects debug shapes and visuals if (DrawDebugDraw && (renderContext.View.Flags & ViewFlags.DebugDraw) == ViewFlags.DebugDraw) { @@ -609,7 +604,8 @@ namespace FlaxEditor.Viewport base.OnMouseMove(location); // Don't allow rubber band selection when gizmo is controlling mouse, vertex painting mode, or cloth painting is enabled - bool canStart = !((Gizmos.Active.IsControllingMouse || Gizmos.Active is VertexPaintingGizmo || Gizmos.Active is ClothPaintingGizmo) || IsControllingMouse || IsRightMouseButtonDown || IsAltKeyDown); + bool canStart = !(IsControllingMouse || IsRightMouseButtonDown || IsAltKeyDown) && + Gizmos.Active is TransformGizmo && !Gizmos.Active.IsControllingMouse; _rubberBandSelector.TryCreateRubberBand(canStart, _viewMousePos, ViewFrustum); }