@Override
  public @NotNull VisualPosition xyToVisualPosition(@NotNull Point2D p) {
    assertValid();
    Point2D pp = p.getX() >= 0 && p.getY() >= 0 ? p : new Point2D.Double(Math.max(p.getX(), 0), Math.max(p.getY(), 0));
    LogicalPosition hostPos = myDelegate.visualToLogicalPosition(myDelegate.xyToVisualPosition(pp));
    return logicalToVisualPosition(hostToInjected(hostPos));
  }
@Override
  public @NotNull VisualPosition xyToVisualPosition(@NotNull Point2D p)