diff --git a/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java b/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java index e54106ebfb13..177fd0313065 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java @@ -47,6 +47,7 @@ import com.intellij.ui.components.JBScrollPane; import com.intellij.ui.components.panels.NonOpaquePanel; import com.intellij.util.Alarm; import com.intellij.util.ArrayUtil; +import com.intellij.util.IconUtil; import com.intellij.util.TimeoutUtil; import com.intellij.util.ui.DialogUtil; import com.intellij.util.ui.JBUI; @@ -543,11 +544,7 @@ public abstract class DialogWrapper { } if (hasHelpToMoveToLeftSide) { - JButton helpButton = new JButton(getHelpAction()); - helpButton.putClientProperty("JButton.buttonType", "help"); - helpButton.setText(""); - helpButton.setMargin(insets); - helpButton.setToolTipText(ActionsBundle.actionDescription("HelpTopics")); + JButton helpButton = createHelpButton(insets); panel.add(helpButton, BorderLayout.WEST); } @@ -580,6 +577,32 @@ public abstract class DialogWrapper { return panel; } + @NotNull + protected JButton createHelpButton(Insets insets) { + final JButton helpButton; + if ((SystemInfo.isWindows && UIUtil.isUnderIntelliJLaF() && Registry.is("ide.intellij.laf.win10.ui"))) { + helpButton = new JButton(getHelpAction()) { + @Override + public void paint(Graphics g) { + IconUtil.paintInCenterOf(this, g, AllIcons.Windows.WinHelp); + } + + @Override + public Dimension getPreferredSize() { + return new Dimension(AllIcons.Windows.WinHelp.getIconWidth(), AllIcons.Windows.WinHelp.getIconHeight()); + } + }; + helpButton.setOpaque(false); + } else { + helpButton = new JButton(getHelpAction()); + } + helpButton.putClientProperty("JButton.buttonType", "help"); + helpButton.setText(""); + helpButton.setMargin(insets); + helpButton.setToolTipText(ActionsBundle.actionDescription("HelpTopics")); + return helpButton; + } + protected boolean shouldAddErrorNearButtons() { return false; }