diff --git a/java/execution/impl/src/com/intellij/execution/ui/JreComboboxEditor.java b/java/execution/impl/src/com/intellij/execution/ui/JreComboboxEditor.java index 4611b62acad4..5c13a5e2f9e4 100644 --- a/java/execution/impl/src/com/intellij/execution/ui/JreComboboxEditor.java +++ b/java/execution/impl/src/com/intellij/execution/ui/JreComboboxEditor.java @@ -24,6 +24,9 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.plaf.basic.BasicComboBoxEditor; +import java.awt.*; +import java.awt.event.FocusEvent; +import java.awt.event.FocusListener; /** * @author nik @@ -56,6 +59,23 @@ class JreComboboxEditor extends BasicComboBoxEditor { protected JTextField createEditorComponent() { JBTextField field = new JBTextField(); field.setBorder(null); + field.addFocusListener(new FocusListener() { + @Override public void focusGained(FocusEvent e) { + update(e); + } + @Override public void focusLost(FocusEvent e) { + update(e); + } + + private void update(FocusEvent e) { + Component c = e.getComponent().getParent(); + if (c != null) { + c.revalidate(); + c.repaint(); + } + } + }); + return field; } diff --git a/platform/platform-api/src/com/intellij/openapi/ui/FixedSizeButton.java b/platform/platform-api/src/com/intellij/openapi/ui/FixedSizeButton.java index 036e574263ea..c4d62c4f5d0d 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/FixedSizeButton.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/FixedSizeButton.java @@ -16,6 +16,7 @@ package com.intellij.openapi.ui; import com.intellij.icons.AllIcons; +import com.intellij.openapi.util.SystemInfo; import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; @@ -88,10 +89,11 @@ public class FixedSizeButton extends JButton { public Dimension getPreferredSize() { if (myComponent != null) { int size = myComponent.getPreferredSize().height; - if (myComponent instanceof JComboBox && (UIUtil.isUnderIntelliJLaF() || UIUtil.isUnderDarcula())) { + if (myComponent instanceof JComboBox && (!SystemInfo.isMac && UIUtil.isUnderIntelliJLaF() || UIUtil.isUnderDarcula())) { // JComboBox's preferred height is 2px greater than JTextField's one, because // javax.swing.DefaultListCellRenderer#getNoFocusBorder returns (1,1,1,1) border. // Decrement to have equal sizes for pretty look when stacked vertically + // Mac default border is computed correctly, so don't account for on Mac. size -= 2; } return new Dimension(size, size); diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/browseButton.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/browseButton.png deleted file mode 100644 index e85a8e49a1d5..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/browseButton.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/browseButton@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/browseButton@2x.png deleted file mode 100644 index f663b23a2e41..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/browseButton@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboLeft.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboLeft.png deleted file mode 100644 index d99be4d5ab00..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboLeft.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboLeft@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboLeft@2x.png deleted file mode 100644 index 937c8268b6d2..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboLeft@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboMiddle.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboMiddle.png deleted file mode 100644 index 1f84b0eb2383..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboMiddle.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboMiddle@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboMiddle@2x.png deleted file mode 100644 index 7ff520f1f15a..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboMiddle@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight.png deleted file mode 100644 index dbfe3db00c08..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight@2x.png deleted file mode 100644 index 0b720a9e2384..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonComboRight@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeft.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeft.png deleted file mode 100644 index 3dc0fb1f2418..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeft.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeft@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeft@2x.png deleted file mode 100644 index 943f526e0a85..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeft@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused.png deleted file mode 100644 index 70ba7a202a6f..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused@2x.png deleted file mode 100644 index 632420094f6f..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelected.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelected.png deleted file mode 100644 index ce8ef940f9f0..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelected.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelected@2x.png deleted file mode 100644 index 3e3ba77cf7bd..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelected@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelectedFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelectedFocused.png deleted file mode 100644 index 4ca54c232e3d..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelectedFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelectedFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelectedFocused@2x.png deleted file mode 100644 index d60caaba84f1..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonLeftSelectedFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddle.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddle.png deleted file mode 100644 index e93b2eb1d954..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddle.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddle@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddle@2x.png deleted file mode 100644 index c06144ad474a..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddle@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused.png deleted file mode 100644 index c6aba3e96cd2..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused@2x.png deleted file mode 100644 index 02fa73a787dd..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelected.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelected.png deleted file mode 100644 index 417b30b4c7b5..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelected.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelected@2x.png deleted file mode 100644 index dcab112b120b..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelected@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused.png deleted file mode 100644 index ce4ee9b76e46..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused@2x.png deleted file mode 100644 index 258ab92c4ddb..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonMiddleSelectedFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRight.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRight.png deleted file mode 100644 index 4d18a8c8cb49..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRight.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRight@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRight@2x.png deleted file mode 100644 index 9cac08480859..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRight@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused.png deleted file mode 100644 index fcbeba38d7b8..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused@2x.png deleted file mode 100644 index c96dc1e51491..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected.png deleted file mode 100644 index ef1759ba03dc..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected@2x.png deleted file mode 100644 index 45bdb1021717..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelected@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelectedFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelectedFocused.png deleted file mode 100644 index db9b7e2cd6f2..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelectedFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelectedFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelectedFocused@2x.png deleted file mode 100644 index 556058bc0924..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/buttonRightSelectedFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/browseButton.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/browseButton.png deleted file mode 100644 index e85a8e49a1d5..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/browseButton.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/browseButton@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/browseButton@2x.png deleted file mode 100644 index f663b23a2e41..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/browseButton@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboLeft.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboLeft.png deleted file mode 100644 index d99be4d5ab00..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboLeft.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboLeft@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboLeft@2x.png deleted file mode 100644 index 937c8268b6d2..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboLeft@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboMiddle.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboMiddle.png deleted file mode 100644 index 1f84b0eb2383..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboMiddle.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboMiddle@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboMiddle@2x.png deleted file mode 100644 index 7ff520f1f15a..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboMiddle@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight.png deleted file mode 100644 index dbfe3db00c08..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight@2x.png deleted file mode 100644 index 0b720a9e2384..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonComboRight@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeft.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeft.png deleted file mode 100644 index a0360b323836..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeft.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeft@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeft@2x.png deleted file mode 100644 index 943f526e0a85..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeft@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused.png deleted file mode 100644 index d9f7824c07ba..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused@2x.png deleted file mode 100644 index 539c29ddf8b9..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected.png deleted file mode 100644 index 4716ced7977a..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected@2x.png deleted file mode 100644 index e88963eee3d3..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelected@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelectedFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelectedFocused.png deleted file mode 100644 index c2cb61084721..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelectedFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelectedFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelectedFocused@2x.png deleted file mode 100644 index 5113f9633fab..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonLeftSelectedFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle.png deleted file mode 100644 index 5e6e01824d84..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle@2x.png deleted file mode 100644 index c06144ad474a..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddle@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleFocused.png deleted file mode 100644 index b310695df72b..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleFocused@2x.png deleted file mode 100644 index 8f9926a0b6cb..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected.png deleted file mode 100644 index ee5e439d2dea..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected@2x.png deleted file mode 100644 index 82925d5a9b20..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelected@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelectedFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelectedFocused.png deleted file mode 100644 index 18e21bb5007d..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelectedFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelectedFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelectedFocused@2x.png deleted file mode 100644 index 38bc40fcaaf1..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonMiddleSelectedFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRight.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRight.png deleted file mode 100644 index 29d733d404da..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRight.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRight@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRight@2x.png deleted file mode 100644 index 9cac08480859..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRight@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightFocused.png deleted file mode 100644 index dbd1b76e4407..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightFocused@2x.png deleted file mode 100644 index f8f3af00cb67..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelected.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelected.png deleted file mode 100644 index ef0375895631..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelected.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelected@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelected@2x.png deleted file mode 100644 index 0c7b3d1d51b6..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelected@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelectedFocused.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelectedFocused.png deleted file mode 100644 index e5e6f7f1cd52..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelectedFocused.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelectedFocused@2x.png b/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelectedFocused@2x.png deleted file mode 100644 index 7aebb28d50f1..000000000000 Binary files a/platform/platform-impl/src/com/intellij/ide/ui/laf/icons/graphite/buttonRightSelectedFocused@2x.png and /dev/null differ diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonBorder.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonBorder.java index 4d44846101cf..e264f0a29840 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonBorder.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonBorder.java @@ -15,24 +15,38 @@ */ package com.intellij.ide.ui.laf.intellij; +import com.intellij.ide.ui.laf.darcula.DarculaUIUtil; +import com.intellij.ide.ui.laf.darcula.ui.DarculaButtonUI; import com.intellij.util.ui.JBUI; +import javax.swing.*; import javax.swing.border.Border; import javax.swing.plaf.UIResource; import java.awt.*; +import static com.intellij.ide.ui.laf.intellij.MacIntelliJButtonUI.ARC_SIZE; + /** * @author Konstantin Bulenkov */ public class MacIntelliJButtonBorder implements Border, UIResource { @Override public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { + if (!c.hasFocus() || + c instanceof JComponent && DarculaButtonUI.isHelpButton((JComponent)c)) return; + Graphics2D g2 = (Graphics2D)g.create(); + try { + g2.translate(x, y); + DarculaUIUtil.paintFocusBorder(g2, width, height, ARC_SIZE, true); + } finally { + g2.dispose(); + } } @Override public Insets getBorderInsets(Component c) { - return JBUI.insets(2,7).asUIResource(); + return JBUI.insets(3, 3).asUIResource(); } @Override diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java index a213d4fde03a..b49c7564e2fe 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJButtonUI.java @@ -16,8 +16,12 @@ package com.intellij.ide.ui.laf.intellij; import com.intellij.ide.ui.UISettings; +import com.intellij.ide.ui.laf.IntelliJLaf; import com.intellij.ide.ui.laf.darcula.ui.DarculaButtonUI; import com.intellij.ui.Gray; +import com.intellij.util.ui.JBUI; +import com.intellij.util.ui.MacUIUtil; +import com.intellij.util.ui.UIUtil; import sun.swing.SwingUtilities2; import javax.swing.*; @@ -25,8 +29,8 @@ import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicHTML; import javax.swing.text.View; import java.awt.*; -import java.awt.geom.Area; -import java.awt.geom.Rectangle2D; +import java.awt.geom.Path2D; +import java.awt.geom.RoundRectangle2D; /** * @author Konstantin Bulenkov @@ -36,11 +40,14 @@ public class MacIntelliJButtonUI extends DarculaButtonUI { private static Rectangle textRect = new Rectangle(); private static Rectangle iconRect = new Rectangle(); + static final int ARC_SIZE = JBUI.scale(6); + @SuppressWarnings({"MethodOverridesStaticMethodOfSuperclass", "UnusedDeclaration"}) public static ComponentUI createUI(JComponent c) { return new MacIntelliJButtonUI(); } + @SuppressWarnings("UseJBColor") @Override public void paint(Graphics g, JComponent c) { if (!(c.getBorder() instanceof MacIntelliJButtonBorder) && !isComboButton(c)) { @@ -56,86 +63,87 @@ public class MacIntelliJButtonUI extends DarculaButtonUI { icon.paintIcon(c, g, x, y); } else { AbstractButton b = (AbstractButton) c; - String text = layout(b, SwingUtilities2.getFontMetrics(b, g), - b.getWidth(), b.getHeight()); + FontMetrics fm = SwingUtilities2.getFontMetrics(b, g); + String text = isSquare(c) ? layout(b, "...", null, fm, b.getWidth(), b.getHeight()) : + layout(b, b.getText(), b.getIcon(), fm, b.getWidth(), b.getHeight()); - boolean isFocused = c.hasFocus(); - if (isSquare(c)) { - Icon icon = MacIntelliJIconCache.getIcon("browseButton"); - int x = (c.getWidth() - icon.getIconWidth()) / 2; - int y = (c.getHeight() - icon.getIconHeight()) / 2; - icon.paintIcon(c, g, x, y); - return; - } else { - int x = isFocused ? 0 : 2; - int y = isFocused ? 0 : (h - viewRect.height) / 2; - Icon icon; - icon = getLeftIcon(b); - icon.paintIcon(b, g, x, y); - x += icon.getIconWidth(); - int stop = w - (isFocused ? 0 : 2) - (getRightIcon(b).getIconWidth()); + Graphics2D g2 = (Graphics2D)g.create(); + try { + g2.translate(0, 0); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, MacUIUtil.USE_QUARTZ ? RenderingHints.VALUE_STROKE_PURE : RenderingHints.VALUE_STROKE_NORMALIZE); - Graphics gg = g.create(0, 0, w, h); - Area area = new Area(new Rectangle2D.Double(x, y, stop - x, h)); - area.intersect(new Area(gg.getClip())); - gg.setClip(area); + double lw = UIUtil.isRetina(g2) ? 0.5 : 1.0; + Insets i = c.getBorder().getBorderInsets(c); // ComboButton adds arrow width to the insets, so take the bare border. - icon = getMiddleIcon(b); - while (x < stop) { - icon.paintIcon(b, gg, x, y); - x += icon.getIconWidth(); - } - gg.dispose(); - icon = getRightIcon(b); - icon.paintIcon(b, g, stop, y); - - clearTextShiftOffset(); - } - - // Paint the Icon - if(b.getIcon() != null) { - paintIcon(g,c,iconRect); - } - - if (text != null && !text.isEmpty()){ - View v = (View) c.getClientProperty(BasicHTML.propertyKey); - if (v != null) { - v.paint(g, textRect); + // Draw background + Shape outerRect = new RoundRectangle2D.Double(i.left, i.top, w - (i.left + i.right), h - (i.top + i.bottom), + ARC_SIZE, ARC_SIZE); + Paint p; + if (isDefaultButton(c)) { + p = IntelliJLaf.isGraphite() ? + new GradientPaint(w/2, i.top, new Color(0xb2b2b7), w/2, h - (i.top + i.bottom), new Color(0x929297)) : + new GradientPaint(w/2, i.top, new Color(0x84b0f7), w/2, h - (i.top + i.bottom), new Color(0x4b80fb)); + } else if (b.isEnabled()) { + p = Gray.xFF; } else { - UISettings.setupAntialiasing(g); - paintText(g, b, textRect, text); + p = Gray.xF1; + } + + g2.setPaint(p); + g2.fill(outerRect); + + // Draw outline + Path2D outline = new Path2D.Double(Path2D.WIND_EVEN_ODD); + outline.append(outerRect, false); + outline.append(new RoundRectangle2D.Double(i.left + lw, i.top + lw, + w - lw*2 - (i.left + i.right), + h - lw*2 - (i.top + i.bottom), + ARC_SIZE - lw, ARC_SIZE - lw), false); + + if (isDefaultButton(c)) { + p = IntelliJLaf.isGraphite() ? + new GradientPaint(w/2, i.top, new Color(0xa5a5ab), w/2, h - (i.top + i.bottom), new Color(0x7d7d83)) : + new GradientPaint(w/2, i.top, new Color(0x6d9ff6), w/2, h - (i.top + i.bottom), new Color(0x3861fa)); + } else if (b.isEnabled()) { + p = new GradientPaint(w/2, i.top, Gray.xC9, w/2, h - (i.top + i.bottom), Gray.xAC); + } else { + p = new GradientPaint(w/2, i.top, Gray.xD2, w/2, h - (i.top + i.bottom), Gray.xC3); + } + + g2.setPaint(p); + g2.fill(outline); + } finally { + g2.dispose(); + } + + if (isSquare(c)) { + UISettings.setupAntialiasing(g); + paintText(g, b, textRect, text); + } else { + // Paint the Icon + if(b.getIcon() != null) { + paintIcon(g,c,iconRect); + } + + if (text != null && !text.isEmpty()){ + View v = (View) c.getClientProperty(BasicHTML.propertyKey); + if (v != null) { + v.paint(g, textRect); + } else { + UISettings.setupAntialiasing(g); + paintText(g, b, textRect, text); + } } } } } - protected static boolean isComboButton(JComponent c) { + private static boolean isComboButton(JComponent c) { return c instanceof AbstractButton && c.getClientProperty("styleCombo") == Boolean.TRUE; } - private static Icon getLeftIcon(AbstractButton button) { - return getIcon("Left", button); - } - - private static Icon getMiddleIcon(AbstractButton button) { - return getIcon("Middle", button); - } - - private static Icon getRightIcon(AbstractButton button) { - return getIcon("Right", button); - } - - private static Icon getIcon(String suffix, AbstractButton button) { - boolean isDefault = isDefaultButton(button); - boolean isFocused = button.hasFocus(); - boolean combo = isComboButton(button); - String comboPrefix = combo ? "Combo" : ""; - String iconName = "button" + comboPrefix + suffix; - return MacIntelliJIconCache.getIcon(iconName, isDefault, isFocused && !combo); - } - - private String layout(AbstractButton b, FontMetrics fm, - int width, int height) { + private String layout(AbstractButton b, String text, Icon icon, FontMetrics fm, int width, int height) { Insets i = b.getInsets(); viewRect.x = i.left; viewRect.y = i.top; @@ -151,18 +159,20 @@ public class MacIntelliJButtonUI extends DarculaButtonUI { // layout the text and icon return SwingUtilities.layoutCompoundLabel( - b, fm, b.getText(), b.getIcon(), + b, fm, text, icon, b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), - viewRect, iconRect, textRect, - b.getText() == null ? 0 : b.getIconTextGap()); + viewRect, iconRect, textRect, text == null ? 0 : b.getIconTextGap()); } @Override public Dimension getPreferredSize(JComponent c) { Dimension size = super.getPreferredSize(c); - if (c.getBorder() instanceof MacIntelliJButtonBorder || isComboButton(c)) { - return new Dimension(size.width + (isComboButton(c) ? 8 : 16), 27); + if (isHelpButton(c)) { + Icon icon = MacIntelliJIconCache.getIcon("helpButton", false, false); + return new Dimension(icon.getIconWidth(), icon.getIconHeight()); + } else if (c.getBorder() instanceof MacIntelliJButtonBorder || isComboButton(c)) { + return new Dimension(size.width + (isComboButton(c) ? 10 : 18), 27); } return size; } diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJTextBorder.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJTextBorder.java index 040e489f92c0..7649a6fb64d0 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJTextBorder.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJTextBorder.java @@ -16,14 +16,16 @@ package com.intellij.ide.ui.laf.intellij; import com.intellij.ide.ui.laf.darcula.DarculaUIUtil; -import com.intellij.ide.ui.laf.darcula.ui.DarculaTextBorder; import com.intellij.ide.ui.laf.darcula.ui.TextFieldWithPopupHandlerUI; +import com.intellij.openapi.ui.ErrorBorderCapable; import com.intellij.openapi.util.registry.Registry; import com.intellij.ui.Gray; import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtil; import javax.swing.*; +import javax.swing.border.Border; +import javax.swing.plaf.UIResource; import java.awt.*; import java.awt.geom.Area; import java.awt.geom.Path2D; @@ -32,7 +34,7 @@ import java.awt.geom.Rectangle2D; /** * @author Konstantin Bulenkov */ -public class MacIntelliJTextBorder extends DarculaTextBorder { +public class MacIntelliJTextBorder implements Border, UIResource, ErrorBorderCapable { @Override public Insets getBorderInsets(Component c) { return JBUI.insets(3, 6).asUIResource(); @@ -84,7 +86,7 @@ public class MacIntelliJTextBorder extends DarculaTextBorder { } boolean isFocused(Component c) { - return c.hasFocus(); + return c instanceof JScrollPane ? ((JScrollPane)c).getViewport().getView().hasFocus() :c.hasFocus(); } void clipForBorder(Component c, Graphics2D g2, int width, int height) { diff --git a/platform/util/src/com/intellij/util/ui/MacUIUtil.java b/platform/util/src/com/intellij/util/ui/MacUIUtil.java index 6b5d7782a612..3329d0531ba8 100644 --- a/platform/util/src/com/intellij/util/ui/MacUIUtil.java +++ b/platform/util/src/com/intellij/util/ui/MacUIUtil.java @@ -25,7 +25,6 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.border.Border; -import javax.swing.plaf.TreeUI; import javax.swing.tree.DefaultTreeCellRenderer; import java.awt.*; import java.awt.geom.GeneralPath; @@ -141,6 +140,7 @@ public class MacUIUtil { ((Graphics2D)g).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f)); } + //noinspection UseJBColor g.setColor(new Color(100, 100, 100, 200)); g.drawRect(x1, y1, width1 - 1, height1 - 1); @@ -168,7 +168,7 @@ public class MacUIUtil { @Override public Insets getBorderInsets(Component c) { - return new Insets(6, 7, 6, 7); + return new JBInsets(6, 7, 6, 7); } @Override @@ -183,6 +183,7 @@ public class MacUIUtil { return (Color)o; } + //noinspection UseJBColor return new Color(64, 113, 167); }