private bool CheckDockLocation(MultiSplitContainer container)
{
var horizontal = container.Horizontal;
var absoluteBounds = container.Parent.RectangleToScreen(container.Bounds);
if (!absoluteBounds.Contains(Cursor.Position)) return false;
foreach (var panel in container.Panels)
{
if (CheckGroupDock(panel.ControlContainer.Controls[0] as IdePanel)) return true;
}
var splits = new List<LayoutSplit>();
var splitIndex = 0;
var closestSplit = new LayoutSplit
{
Location = horizontal ? absoluteBounds.Left : absoluteBounds.Top,
Index = splitIndex,
Parent = container,
Horizontal = horizontal
};
foreach (var split in container.Splits)
splits.Add(new LayoutSplit
{
Location = closestSplit.Location + split,
Index = ++splitIndex,
Parent = container,
Horizontal = horizontal
});
SuggestClosestSplit(closestSplit, splits, absoluteBounds, horizontal);
return true;
}