private void TestDrop()
{
this.Outline.FlagTestDrop = false;
this.Indicator.FullPanelEdge = ((ModifierKeys & Keys.Shift) != 0);
if ((ModifierKeys & Keys.Control) == 0)
{
this.Indicator.TestDrop();
if (!this.Outline.FlagTestDrop)
{
DockPane pane = DockHelper.PaneAtPoint(MousePosition, DockPanel);
if (pane != null && this.DragSource.IsDockStateValid(pane.DockState))
pane.TestDrop(this.DragSource, this.Outline);
}
if (!this.Outline.FlagTestDrop && this.DragSource.IsDockStateValid(DockState.Float))
{
FloatWindow floatWindow = DockHelper.FloatWindowAtPoint(MousePosition, DockPanel);
if (floatWindow != null)
floatWindow.TestDrop(this.DragSource, this.Outline);
}
}
else
this.Indicator.DockPane = DockHelper.PaneAtPoint(MousePosition, DockPanel);
if (!this.Outline.FlagTestDrop)
{
if (this.DragSource.IsDockStateValid(DockState.Float))
{
Rectangle rect = this.FloatOutlineBounds;
rect.Offset(MousePosition.X - StartMousePosition.X, MousePosition.Y - StartMousePosition.Y);
this.Outline.Show(rect);
}
}
if (!this.Outline.FlagTestDrop)
{
Cursor.Current = Cursors.No;
this.Outline.Show();
}
else
Cursor.Current = DragControl.Cursor;
}