@Override
        public void mouseReleased(MouseEvent e) {
            if (!potentialDrag) {
                return;
            }

            source.removeMouseMotionListener(this);
            potentialDrag = false;

            if (changeCursor) {
                source.setCursor(originalCursor);
            }

            if (destination instanceof JComponent) {
                ((JComponent) destination).setAutoscrolls(autoscrolls);
            }

            if (autoLayout) {
                if (destination instanceof JComponent) {
                    ((JComponent) destination).revalidate();
                } else {
                    destination.validate();
                }
            }
        }