Commit 7d09b2f0 authored by Dennis Ushakov's avatar Dennis Ushakov Committed by Maxim.Mossienko
Browse files

manual scaling for images in documentation component (IDEA-200855)

(cherry picked from commit 633ee5fa)
parent a6d84879
Showing with 34 additions and 1 deletion
+34 -1
......@@ -85,6 +85,7 @@ import javax.swing.text.*;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.ImageView;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
......@@ -324,7 +325,39 @@ public class DocumentationComponent extends JPanel implements Disposable, DataPr
};
}
}
return super.create(elem);
View view = super.create(elem);
if (view instanceof ImageView) {
// we have to work with raw image, apply scaling manually
return new ImageView(elem) {
@Override
public float getMaximumSpan(int axis) {
return super.getMaximumSpan(axis) / JBUI.sysScale(myEditorPane);
}
@Override
public float getMinimumSpan(int axis) {
return super.getMinimumSpan(axis) / JBUI.sysScale(myEditorPane);
}
@Override
public float getPreferredSpan(int axis) {
return super.getPreferredSpan(axis) / JBUI.sysScale(myEditorPane);
}
@Override
public void paint(Graphics g, Shape a) {
Rectangle bounds = a.getBounds();
int width = (int)super.getPreferredSpan(View.X_AXIS);
int height = (int)super.getPreferredSpan(View.Y_AXIS);
@SuppressWarnings("UndesirableClassUsage")
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = image.createGraphics();
super.paint(graphics, new Rectangle(image.getWidth(), image.getHeight()));
UIUtil.drawImage(g, ImageUtil.ensureHiDPI(image, JBUI.ScaleContext.create(myEditorPane)), bounds.x, bounds.y, null);
}
};
}
return view;
}
};
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment