diff --git a/Source/Editor/GUI/Docking/DockPanelProxy.cs b/Source/Editor/GUI/Docking/DockPanelProxy.cs index bc38e2953..4e7ca8973 100644 --- a/Source/Editor/GUI/Docking/DockPanelProxy.cs +++ b/Source/Editor/GUI/Docking/DockPanelProxy.cs @@ -49,6 +49,11 @@ namespace FlaxEditor.GUI.Docking /// The mouse position. /// public Float2 MousePosition = Float2.Minimum; + + /// + /// The mouse position. + /// + public Float2 MouseStartPosition = Float2.Minimum; /// /// The start drag asynchronous window. @@ -355,6 +360,7 @@ namespace FlaxEditor.GUI.Docking if (IsSingleFloatingWindow) return base.OnMouseDown(location, button); MouseDownWindow = GetTabAtPos(location, out IsMouseDownOverCross); + MouseStartPosition = location; // Check buttons if (button == MouseButton.Left) @@ -441,6 +447,20 @@ namespace FlaxEditor.GUI.Docking StartDrag(MouseDownWindow); MouseDownWindow = null; } + // Check if single tab is tried to be moved + else if (MouseDownWindow != null && _panel.TabsCount <= 1) + { + if ((MousePosition - MouseStartPosition).Length > 3) + { + // Clear flag + IsMouseLeftButtonDown = false; + + // Check tab under the mouse + if (!IsMouseDownOverCross && MouseDownWindow != null) + StartDrag(MouseDownWindow); + MouseDownWindow = null; + } + } // Check if has more than one tab to change order else if (MouseDownWindow != null && _panel.TabsCount > 1) {