diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatEditorPaneUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatEditorPaneUI.java index 0bfe034b..eb123eec 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatEditorPaneUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatEditorPaneUI.java @@ -85,20 +85,20 @@ public class FlatEditorPaneUI @Override public Dimension getPreferredSize( JComponent c ) { - return applyMinimumWidth( super.getPreferredSize( c ) ); + return applyMinimumWidth( c, super.getPreferredSize( c ), minimumWidth ); } @Override public Dimension getMinimumSize( JComponent c ) { - return applyMinimumWidth( super.getMinimumSize( c ) ); + return applyMinimumWidth( c, super.getMinimumSize( c ), minimumWidth ); } - private Dimension applyMinimumWidth( Dimension size ) { + static Dimension applyMinimumWidth( JComponent c, Dimension size, int minimumWidth ) { // Assume that text area is in a scroll pane (that displays the border) // and subtract 1px border line width. // Using "(scale( 1 ) * 2)" instead of "scale( 2 )" to deal with rounding // issues. E.g. at scale factor 1.5 the first returns 4, but the second 3. - int minimumWidth = FlatUIUtils.minimumWidth( getComponent(), this.minimumWidth ); + minimumWidth = FlatUIUtils.minimumWidth( c, minimumWidth ); size.width = Math.max( size.width, scale( minimumWidth ) - (scale( 1 ) * 2) ); return size; } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPasswordFieldUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPasswordFieldUI.java index c50de824..92b4c9f5 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPasswordFieldUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPasswordFieldUI.java @@ -174,11 +174,11 @@ public class FlatPasswordFieldUI @Override public Dimension getPreferredSize( JComponent c ) { - return FlatTextFieldUI.applyMinimumWidth( super.getPreferredSize( c ), minimumWidth, c ); + return FlatTextFieldUI.applyMinimumWidth( c, super.getPreferredSize( c ), minimumWidth ); } @Override public Dimension getMinimumSize( JComponent c ) { - return FlatTextFieldUI.applyMinimumWidth( super.getMinimumSize( c ), minimumWidth, c ); + return FlatTextFieldUI.applyMinimumWidth( c, super.getMinimumSize( c ), minimumWidth ); } } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextAreaUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextAreaUI.java index 4cc5c109..c82eb8b7 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextAreaUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextAreaUI.java @@ -16,7 +16,6 @@ package com.formdev.flatlaf.ui; -import static com.formdev.flatlaf.util.UIScale.scale; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; @@ -100,25 +99,19 @@ public class FlatTextAreaUI @Override public Dimension getPreferredSize( JComponent c ) { - return applyMinimumWidth( super.getPreferredSize( c ), c ); + return applyMinimumWidth( c, super.getPreferredSize( c ) ); } @Override public Dimension getMinimumSize( JComponent c ) { - return applyMinimumWidth( super.getMinimumSize( c ), c ); + return applyMinimumWidth( c, super.getMinimumSize( c ) ); } - private Dimension applyMinimumWidth( Dimension size, JComponent c ) { + private Dimension applyMinimumWidth( JComponent c, Dimension size ) { // do not apply minimum width if JTextArea.columns is set if( c instanceof JTextArea && ((JTextArea)c).getColumns() > 0 ) return size; - // Assume that text area is in a scroll pane (that displays the border) - // and subtract 1px border line width. - // Using "(scale( 1 ) * 2)" instead of "scale( 2 )" to deal with rounding - // issues. E.g. at scale factor 1.5 the first returns 4, but the second 3. - int minimumWidth = FlatUIUtils.minimumWidth( getComponent(), this.minimumWidth ); - size.width = Math.max( size.width, scale( minimumWidth ) - (scale( 1 ) * 2) ); - return size; + return FlatEditorPaneUI.applyMinimumWidth( c, size, minimumWidth ); } } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextFieldUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextFieldUI.java index 14576072..27e51d77 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextFieldUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextFieldUI.java @@ -213,15 +213,15 @@ public class FlatTextFieldUI @Override public Dimension getPreferredSize( JComponent c ) { - return applyMinimumWidth( super.getPreferredSize( c ), minimumWidth, c ); + return applyMinimumWidth( c, super.getPreferredSize( c ), minimumWidth ); } @Override public Dimension getMinimumSize( JComponent c ) { - return applyMinimumWidth( super.getMinimumSize( c ), minimumWidth, c ); + return applyMinimumWidth( c, super.getMinimumSize( c ), minimumWidth ); } - static Dimension applyMinimumWidth( Dimension size, int minimumWidth, JComponent c ) { + static Dimension applyMinimumWidth( JComponent c, Dimension size, int minimumWidth ) { // do not apply minimum width if JTextField.columns is set if( c instanceof JTextField && ((JTextField)c).getColumns() > 0 ) return size; diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextPaneUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextPaneUI.java index b6c70926..ba23c2e7 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextPaneUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTextPaneUI.java @@ -16,7 +16,6 @@ package com.formdev.flatlaf.ui; -import static com.formdev.flatlaf.util.UIScale.scale; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.JComponent; @@ -85,22 +84,12 @@ public class FlatTextPaneUI @Override public Dimension getPreferredSize( JComponent c ) { - return applyMinimumWidth( super.getPreferredSize( c ) ); + return FlatEditorPaneUI.applyMinimumWidth( c, super.getPreferredSize( c ), minimumWidth ); } @Override public Dimension getMinimumSize( JComponent c ) { - return applyMinimumWidth( super.getMinimumSize( c ) ); - } - - private Dimension applyMinimumWidth( Dimension size ) { - // Assume that text area is in a scroll pane (that displays the border) - // and subtract 1px border line width. - // Using "(scale( 1 ) * 2)" instead of "scale( 2 )" to deal with rounding - // issues. E.g. at scale factor 1.5 the first returns 4, but the second 3. - int minimumWidth = FlatUIUtils.minimumWidth( getComponent(), this.minimumWidth ); - size.width = Math.max( size.width, scale( minimumWidth ) - (scale( 1 ) * 2) ); - return size; + return FlatEditorPaneUI.applyMinimumWidth( c, super.getMinimumSize( c ), minimumWidth ); } @Override