@Override
  public int viewToModel(JTextComponent tc, Point pt, Position.Bias[] biasReturn) {
    return icons.values().stream().anyMatch(p -> p.bounds.contains(pt)) ? -1 : super.viewToModel(tc, pt, biasReturn);
  }
@Override
  public int viewToModel(JTextComponent tc, Point pt, Position.Bias[] biasReturn)