protected DropAction acceptInteriorDrop(Point p, DockingWindow window) {
    if (getChildWindowCount() == 1 && window == getChildWindow(0) && dragTab == null)
      return null;

    Point p2 = SwingUtilities.convertPoint(this, p, tabbedPanel);

    if ((getRootWindow().getRootWindowProperties().getRecursiveTabsEnabled() || window.getChildWindowCount() <= 1) &&
        isInsideTabArea(p2)) {
      getRootWindow().setDragRectangle(null);

      if (window.getWindowParent() == this) {
        tabbedPanel.moveTab(window.getTab(), p2);
      }
      else {
        if (!getInsertTabDropFilter().acceptDrop(new InsertTabDropInfo(window, this, p)))
          return null;

        if (dragTab == null) {
          dragTab = createGhostTab(window);
          tabbedPanel.insertTab(dragTab, p2);
        }
        else {
          tabbedPanel.moveTab(dragTab, p2);
        }
      }

      return dropAction;
    }

    return null;
  }