@Override
      public Point magnify(double scale, Point at) {
        if (EditorComponentImpl.this.editor.isDisposed()) return at;
        VisualPosition magnificationPosition = EditorComponentImpl.this.editor.xyToVisualPosition(at);
        float currentSize = EditorComponentImpl.this.editor.getColorsScheme().getEditorFontSize2D();
        boolean isChangePersistent = EditorSettingsExternalizable.getInstance().isWheelFontChangePersistent();
        float defaultFontSize;
        if (isChangePersistent) {
          defaultFontSize = UISettings.getInstance().getFontSize();
        }
        else {
          defaultFontSize = EditorColorsManager.getInstance().getGlobalScheme().getEditorFontSize2D();
        }

        float size = Math.max((float)(currentSize * scale), defaultFontSize);
        EditorComponentImpl.this.editor.setFontSize(size);
        if (isChangePersistent) {
          EditorComponentImpl.this.editor.adjustGlobalFontSize(UISettingsUtils.scaleFontSize(size, 1 / UISettingsUtils.getInstance().getCurrentIdeScale()));
        }

        return EditorComponentImpl.this.editor.visualPositionToXY(magnificationPosition);
      }
@Override
      public Point magnify(double scale, Point at)