diff --git a/Source/Editor/Surface/VisjectSurface.Input.cs b/Source/Editor/Surface/VisjectSurface.Input.cs
index 7f35a5435..a867eec3d 100644
--- a/Source/Editor/Surface/VisjectSurface.Input.cs
+++ b/Source/Editor/Surface/VisjectSurface.Input.cs
@@ -17,6 +17,11 @@ namespace FlaxEditor.Surface
///
public readonly InputActionsContainer InputActions;
+ ///
+ /// Optional feature.
+ ///
+ public bool PanWithMiddleMouse = false;
+
private string _currentInputText = string.Empty;
private Float2 _movingNodesDelta;
private HashSet _movingNodes;
@@ -223,15 +228,18 @@ namespace FlaxEditor.Surface
if (_middleMouseDown)
{
- // Calculate delta
- var delta = location - _middleMouseDownPos;
- if (delta.LengthSquared > 0.01f)
+ if (PanWithMiddleMouse)
{
- // Move view
- _mouseMoveAmount += delta.Length;
- _rootControl.Location += delta;
- _middleMouseDownPos = location;
- Cursor = CursorType.SizeAll;
+ // Calculate delta
+ var delta = location - _middleMouseDownPos;
+ if (delta.LengthSquared > 0.01f)
+ {
+ // Move view
+ _mouseMoveAmount += delta.Length;
+ _rootControl.Location += delta;
+ _middleMouseDownPos = location;
+ Cursor = CursorType.SizeAll;
+ }
}
// Handled
@@ -300,7 +308,8 @@ namespace FlaxEditor.Surface
if (_middleMouseDown)
{
_middleMouseDown = false;
- Cursor = CursorType.Default;
+ if (PanWithMiddleMouse)
+ Cursor = CursorType.Default;
}
_isMovingSelection = false;
ConnectingEnd(null);
@@ -483,7 +492,7 @@ namespace FlaxEditor.Surface
Focus();
return true;
}
- if (_rightMouseDown || _middleMouseDown)
+ if (_rightMouseDown || (_middleMouseDown && _middleMouseDown))
{
// Start navigating
StartMouseCapture();
@@ -555,9 +564,12 @@ namespace FlaxEditor.Surface
if (_middleMouseDown && button == MouseButton.Middle)
{
_middleMouseDown = false;
- EndMouseCapture();
- Cursor = CursorType.Default;
- if (_mouseMoveAmount > 0)
+ if (_middleMouseDown)
+ {
+ EndMouseCapture();
+ Cursor = CursorType.Default;
+ }
+ if (_mouseMoveAmount > 0 && _middleMouseDown)
_mouseMoveAmount = 0;
else if (CanEdit)
{