ARCed.UI.DockPanel.DockDragHandler.TestDrop C# (CSharp) Method

TestDrop() private method

private TestDrop ( ) : void
return void
            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;
            }