From c32581bd9d4c37efebe3fd683f95327b48cdfe3e Mon Sep 17 00:00:00 2001 From: Kirill Kirichenko Date: Sat, 28 Apr 2018 10:48:33 +0300 Subject: [PATCH] Fix password fields --- .../darcula/ui/DarculaPasswordFieldUI.java | 8 ++++- .../intellij/MacIntelliJPasswordFieldUI.java | 11 ++++--- .../intellij/WinIntelliJPasswordFieldUI.java | 29 +++++-------------- 3 files changed, 20 insertions(+), 28 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaPasswordFieldUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaPasswordFieldUI.java index 59b9c4107861..98479e64e1c7 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaPasswordFieldUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaPasswordFieldUI.java @@ -18,6 +18,8 @@ import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.geom.Rectangle2D; +import static com.intellij.ide.ui.laf.darcula.DarculaUIUtil.MINIMUM_HEIGHT; + /** * @author Konstantin Bulenkov */ @@ -61,11 +63,15 @@ public class DarculaPasswordFieldUI extends BasicPasswordFieldUI { protected Dimension updatePreferredSize(Dimension size) { Insets i = getComponent().getInsets(); - size.height = Math.max(size.height, JBUI.scale(20) + i.top + i.bottom); + size.height = Math.max(size.height, getMinimumHeight() + i.top + i.bottom); JBInsets.addTo(size, getComponent().getMargin()); return size; } + protected int getMinimumHeight() { + return MINIMUM_HEIGHT.get(); + } + @Override public Dimension getMinimumSize(JComponent c) { return getPreferredSize(c); diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJPasswordFieldUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJPasswordFieldUI.java index f6c3dcc5ec4e..1e4f401b0335 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJPasswordFieldUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/MacIntelliJPasswordFieldUI.java @@ -3,13 +3,14 @@ package com.intellij.ide.ui.laf.intellij; import com.intellij.ide.ui.laf.darcula.ui.DarculaPasswordFieldUI; import com.intellij.util.ui.JBInsets; -import com.intellij.util.ui.JBUI; import javax.swing.*; import javax.swing.plaf.ComponentUI; import javax.swing.text.JTextComponent; import java.awt.*; +import static com.intellij.ide.ui.laf.intellij.MacIntelliJTextBorder.MINIMUM_HEIGHT; + /** * @author Konstantin Bulenkov */ @@ -44,10 +45,8 @@ public class MacIntelliJPasswordFieldUI extends DarculaPasswordFieldUI { } } - protected Dimension updatePreferredSize(Dimension size) { - Insets i = getComponent().getInsets(); - size.height = Math.max(size.height, JBUI.scale(21) + i.top + i.bottom); - JBInsets.addTo(size, getComponent().getMargin()); - return size; + @Override + protected int getMinimumHeight() { + return MINIMUM_HEIGHT.get(); } } diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/WinIntelliJPasswordFieldUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/WinIntelliJPasswordFieldUI.java index cfdc181625bb..2f626665fcf2 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/WinIntelliJPasswordFieldUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/intellij/WinIntelliJPasswordFieldUI.java @@ -16,22 +16,19 @@ package com.intellij.ide.ui.laf.intellij; import com.intellij.ide.ui.laf.darcula.DarculaUIUtil; +import com.intellij.ide.ui.laf.darcula.ui.DarculaPasswordFieldUI; import javax.swing.*; import javax.swing.plaf.ComponentUI; -import javax.swing.plaf.basic.BasicPasswordFieldUI; import javax.swing.text.JTextComponent; import java.awt.*; -import java.awt.event.FocusEvent; -import java.awt.event.FocusListener; import java.awt.event.MouseListener; +import static com.intellij.ide.ui.laf.intellij.WinIntelliJTextBorder.MINIMUM_HEIGHT; import static com.intellij.ide.ui.laf.intellij.WinIntelliJTextFieldUI.HOVER_PROPERTY; -public class WinIntelliJPasswordFieldUI extends BasicPasswordFieldUI { - +public class WinIntelliJPasswordFieldUI extends DarculaPasswordFieldUI { private MouseListener hoverListener; - private FocusListener focusListener; @SuppressWarnings({"MethodOverridesStaticMethodOfSuperclass", "UnusedDeclaration"}) public static ComponentUI createUI(JComponent c) { @@ -42,18 +39,7 @@ public class WinIntelliJPasswordFieldUI extends BasicPasswordFieldUI { super.installListeners(); JTextComponent passwordField = getComponent(); hoverListener = new DarculaUIUtil.MouseHoverPropertyTrigger(passwordField, HOVER_PROPERTY); - focusListener = new FocusListener() { - @Override public void focusGained(FocusEvent e) { - passwordField.repaint(); - } - - @Override public void focusLost(FocusEvent e) { - passwordField.repaint(); - } - }; - passwordField.addMouseListener(hoverListener); - passwordField.addFocusListener(focusListener); } @Override public void uninstallListeners() { @@ -62,10 +48,6 @@ public class WinIntelliJPasswordFieldUI extends BasicPasswordFieldUI { if (hoverListener != null) { passwordField.removeMouseListener(hoverListener); } - - if (focusListener != null) { - passwordField.removeFocusListener(focusListener); - } } @Override @@ -87,4 +69,9 @@ public class WinIntelliJPasswordFieldUI extends BasicPasswordFieldUI { g2.dispose(); } } + + @Override + protected int getMinimumHeight() { + return MINIMUM_HEIGHT.get(); + } }