private FloatingDockWindow GetFloatingDockWindow(DockItem item)
        {
            if (_hideQueue.Any() == false)
            {
                var dockWindow = CreateFloatingDockWindow();

                _showQueue.Add(dockWindow);

                return(dockWindow);
            }

            var targetRect = FloatLayout.GetFloatRect(item);

            FloatingDockWindow floatingWindow = null;

            foreach (var current in _hideQueue)
            {
                floatingWindow = current;

                if (current.GetLayoutBox().IsCloseTo(targetRect))
                {
                    break;
                }
            }

            _hideQueue.Remove(floatingWindow);

            return(floatingWindow);
        }
 private void ReleaseFloatingDockWindow(FloatingDockWindow window)
 {
     _hideQueue.Add(window);
 }