From e6f90898cbabc01275c57da564aed0c9af761341 Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Fri, 18 Apr 2025 21:44:09 +0300 Subject: [PATCH] Fix editor viewport activating while dragging a window --- Source/Editor/GUI/Docking/WindowDragHelper.cs | 7 +++++++ Source/Editor/Viewport/EditorViewport.cs | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Source/Editor/GUI/Docking/WindowDragHelper.cs b/Source/Editor/GUI/Docking/WindowDragHelper.cs index a6c0ee31d..1fc2cb07b 100644 --- a/Source/Editor/GUI/Docking/WindowDragHelper.cs +++ b/Source/Editor/GUI/Docking/WindowDragHelper.cs @@ -32,9 +32,15 @@ namespace FlaxEditor.GUI.Docking /// The opacity of the dragged window when hint controls are shown. /// public const float DragWindowOpacity = 0.4f; + + /// + /// Returns true if any windows are being dragged. + /// + public static bool IsDragActive { get; private set; } private WindowDragHelper(FloatWindowDockPanel toMove, Window dragSourceWindow) { + IsDragActive = true; _toMove = toMove; _toSet = DockState.Float; var window = toMove.Window.Window; @@ -72,6 +78,7 @@ namespace FlaxEditor.GUI.Docking /// public void Dispose() { + IsDragActive = false; var window = _toMove?.Window?.Window; // Unbind events diff --git a/Source/Editor/Viewport/EditorViewport.cs b/Source/Editor/Viewport/EditorViewport.cs index 9abb631bb..d64152037 100644 --- a/Source/Editor/Viewport/EditorViewport.cs +++ b/Source/Editor/Viewport/EditorViewport.cs @@ -4,6 +4,7 @@ using System; using System.Linq; using FlaxEditor.Content.Settings; using FlaxEditor.GUI.ContextMenu; +using FlaxEditor.GUI.Docking; using FlaxEditor.GUI.Input; using FlaxEditor.Options; using FlaxEditor.Viewport.Cameras; @@ -1578,7 +1579,7 @@ namespace FlaxEditor.Viewport // Update input var window = win.Window; - var canUseInput = window != null && window.IsFocused && window.IsForegroundWindow; + var canUseInput = window != null && window.IsFocused && window.IsForegroundWindow && !WindowDragHelper.IsDragActive; { // Get input buttons and keys (skip if viewport has no focus or mouse is over a child control) var isViewportControllingMouse = canUseInput && IsControllingMouse;