protected DropAction doAcceptDrop(Point p, DockingWindow window) {
    DropAction da = acceptChildDrop(p, window);

    if (da != null)
      return da;

    float f = isHorizontal() ? (float) p.y / getHeight() : (float) p.x / getWidth();

    if (f <= 0.33f) {
      Direction splitDir = isHorizontal() ? Direction.UP : Direction.LEFT;
      return getSplitDropFilter().acceptDrop(new SplitDropInfo(window, this, p, splitDir)) ?
             split(window, splitDir) : null;
    }
    else if (f >= 0.66f) {
      Direction splitDir = isHorizontal() ? Direction.DOWN : Direction.RIGHT;
      return getSplitDropFilter().acceptDrop(new SplitDropInfo(window, this, p, splitDir)) ?
             split(window, splitDir) : null;
    }
    else {
      return getInteriorDropFilter().acceptDrop(new InteriorDropInfo(window, this, p)) ?
             createTabWindow(window) : null;
    }
  }