From 7f56a9dbd0fbff807cb2eafe3bf4ec0ee9f543d3 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Fri, 25 May 2018 18:53:01 +0300 Subject: [PATCH] ui: fix rendering of separators with text on toolbar Actual text width depends on antialiasing settings. --- .../actionSystem/impl/ActionToolbarImpl.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java index e2da3f137840..9f5de6fcdc86 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java @@ -985,8 +985,17 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar, QuickAct if (myOrientation == SwingConstants.HORIZONTAL) { if (myText != null) { FontMetrics fontMetrics = getFontMetrics(getFont()); - return new JBDimension(JBUI.scale(9) + fontMetrics.stringWidth(myText) + JBUI.scale(4), - Math.max(fontMetrics.getHeight(), JBUI.scale(24)), true); + + Graphics g = getGraphics().create(); + try { + UISettings.setupAntialiasing(g); + int textWidth = fontMetrics.getStringBounds(myText, g).getBounds().width; + return new JBDimension(JBUI.scale(9) + textWidth + JBUI.scale(4), + Math.max(fontMetrics.getHeight(), JBUI.scale(24)), true); + } + finally { + g.dispose(); + } } else { return JBUI.size(7, 24);