From c0afc26e8abf4c08a4cd3c32a6dbcdadce3770bb Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Wed, 18 Sep 2013 13:46:34 +0200 Subject: [PATCH] fix stringWidth on non Retina devices --- .../src/com/intellij/ui/SimpleColoredComponent.java | 5 +++-- 1 file changed, 3 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 1a9d7739cfe9..2e1d5cdd2d62 100644 --- a/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java +++ b/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java @@ -430,7 +430,8 @@ public class SimpleColoredComponent extends JComponent implements Accessible, Co } wasSmaller = isSmaller; - final int curWidth = GraphicsUtil.stringWidth(myFragments.get(i), font); + final String text = myFragments.get(i); + final int curWidth = isOracleRetina ? GraphicsUtil.stringWidth(text, font) : getFontMetrics(font).stringWidth(text); if (x >= curX && x < curX + curWidth) { return i; } @@ -623,7 +624,7 @@ public class SimpleColoredComponent extends JComponent implements Accessible, Co final FontMetrics metrics = g.getFontMetrics(font); final String fragment = myFragments.get(i); - final int fragmentWidth = GraphicsUtil.stringWidth(fragment, font); + final int fragmentWidth = isOracleRetina ? GraphicsUtil.stringWidth(fragment, font) : metrics.stringWidth(fragment); final Color bgColor = attributes.getBgColor(); if ((attributes.isOpaque() || isOpaque()) && bgColor != null) {