diff --git a/src/io/flutter/samples/FlutterSampleActionsPanel.java b/src/io/flutter/samples/FlutterSampleActionsPanel.java index 05a8d094d7..949643eb2a 100644 --- a/src/io/flutter/samples/FlutterSampleActionsPanel.java +++ b/src/io/flutter/samples/FlutterSampleActionsPanel.java @@ -27,7 +27,7 @@ public class FlutterSampleActionsPanel extends JPanel { - protected final JLabel myLabel = new JLabel(); + protected final JBLabel myLabel = new JBLabel(); protected final JBLabel goLink; @NotNull private final List samples; @@ -51,16 +51,8 @@ public class FlutterSampleActionsPanel extends JPanel { myLabel.setText("Open sample project:"); myLabel.setBorder(JBUI.Borders.emptyRight(5)); - goLink = new JBLabel("Go..."); - goLink.setBorder(JBUI.Borders.emptyLeft(8)); - goLink.setCursor(new Cursor(Cursor.HAND_CURSOR)); - goLink.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - doCreate(); - } - }); - + goLink = createLinkLabel("Go...", this::doCreate); + goLink.setBorder(JBUI.Borders.empty(1, 8, 0, 0)); sampleSelector = setupSelectorComponent(); @@ -80,6 +72,20 @@ public void mouseClicked(MouseEvent e) { setupPanel(); } + private static JBLabel createLinkLabel(@NotNull String text, @NotNull Runnable onClick) { + // Standard hyperlinks were rendering oddly on 2018.3, so we create our own. + // See: https://github.com/flutter/flutter-intellij/issues/3197 + final JBLabel label = new JBLabel(text); + label.setForeground(JBColor.blue); + label.setCursor(new Cursor(Cursor.HAND_CURSOR)); + label.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + onClick.run(); + } + }); + return label; + } JComponent setupSelectorComponent() { if (samples.size() == 1) {