@Override
  public void registerSource(@NotNull DnDSource source, @NotNull JComponent component) {
    if (!dragMotionThresholdInitialized) {
      // Must do it before the first drag gesture recognizer is created, because some of its implementations
      // use static initalization (macOS, notably), so the value will be stuck in AWT internals forever.
      initializeDragMotionThreshold();
    }
    component.putClientProperty(SOURCE_KEY, source);
    DragSource defaultDragSource = DragSource.getDefaultDragSource();
    defaultDragSource.createDefaultDragGestureRecognizer(component, DnDConstants.ACTION_COPY_OR_MOVE, myDragGestureListener);
  }
@Override
  public void registerSource(@NotNull DnDSource source, @NotNull JComponent component)