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); }