private void TestDrop()
{
DockOutline.FlagTestDrop = false;
DockIndicator.FullPanelEdge = ((Control.ModifierKeys & Keys.Shift) != 0);
if ((Control.ModifierKeys & Keys.Control) == 0)
{
DockIndicator.TestDrop();
if (!DockOutline.FlagTestDrop)
{
DockPane pane = DockHelper.PaneAtPoint(Control.MousePosition, DockPanel);
if (pane != null && IsDockStateValid(pane.DockState))
{
pane.TestDrop(this);
}
}
if (!DockOutline.FlagTestDrop && IsDockStateValid(DockState.Float))
{
FloatWindow floatWindow = DockHelper.FloatWindowAtPoint(Control.MousePosition, DockPanel);
if (floatWindow != null)
{
floatWindow.TestDrop(this);
}
}
}
else
{
DockIndicator.DockPane = DockHelper.PaneAtPoint(Control.MousePosition, DockPanel);
}
if (!DockOutline.FlagTestDrop)
{
if (IsDockStateValid(DockState.Float))
{
DockOutline.Show(GetFloatWindowBounds());
}
}
if (!DockOutline.FlagTestDrop)
{
User32.SetCursor(Cursors.No.Handle);
DockOutline.Show();
}
else
{
User32.SetCursor(DragControl.Cursor.Handle);
}
}