public override void DropOverlay(Overlay overlay)
        {
            switch (m_Placement)
            {
            case Placement.Start:
                overlay.DockAt(m_Container, OverlayContainerSection.BeforeSpacer, m_Container.GetSectionCount(OverlayContainerSection.BeforeSpacer));
                break;

            case Placement.End:
                overlay.DockAt(m_Container, OverlayContainerSection.AfterSpacer, m_Container.GetSectionCount(OverlayContainerSection.AfterSpacer));
                break;
            }

            overlay.floating = false;
        }
        void CancelDrag(Vector2 mousePosition)
        {
            if (m_WasFloating)
            {
                m_Overlay.rootVisualElement.transform.position = m_InitialLayoutPosition;
            }
            else
            {
                m_Overlay.DockAt(m_StartContainer, m_InitialSection, m_InitialIndex);
            }

            OnDragEnd(mousePosition);
        }