From fde0e1692357d3c6d129c9300efae83d7c207c8b Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Fri, 25 Mar 2016 19:18:13 +0300 Subject: [PATCH] IDEA-153645 SimpleColoredComponent should be aligned according to the specified border and Ipad --- .../src/com/intellij/ui/SimpleColoredComponent.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java b/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java index 75b2d7f89f35..1ae9ace0da3f 100644 --- a/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java +++ b/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java @@ -428,6 +428,13 @@ public class SimpleColoredComponent extends JComponent implements Accessible, Co return new Dimension(width, height); } + private Rectangle computePaintArea() { + Rectangle area = new Rectangle(getWidth(), getHeight()); + JBInsets.removeFrom(area, getInsets()); + JBInsets.removeFrom(area, myIpad); + return area; + } + private int computeTextWidth(@NotNull Font font, final boolean mainTextOnly) { int result = 0; int baseSize = font.getSize(); @@ -748,7 +755,8 @@ public class SimpleColoredComponent extends JComponent implements Accessible, Co offset += computeTextAlignShift(baseFont); int baseSize = baseFont.getSize(); FontMetrics baseMetrics = g.getFontMetrics(); - final int textBaseline = getTextBaseLine(baseMetrics, getHeight()); + Rectangle area = computePaintArea(); + final int textBaseline = area.y + getTextBaseLine(baseMetrics, area.height); boolean wasSmaller = false; for (int i = 0; i < myFragments.size(); i++) { final SimpleTextAttributes attributes = myAttributes.get(i); @@ -917,7 +925,8 @@ public class SimpleColoredComponent extends JComponent implements Accessible, Co } protected void paintIcon(@NotNull Graphics g, @NotNull Icon icon, int offset) { - icon.paintIcon(this, g, offset, (getHeight() - icon.getIconHeight()) / 2); + Rectangle area = computePaintArea(); + icon.paintIcon(this, g, offset, area.y + (area.height - icon.getIconHeight()) / 2); } protected void applyAdditionalHints(@NotNull Graphics2D g) {