diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCaret.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCaret.java index 39ae87ee..ba52ff4f 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCaret.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCaret.java @@ -36,13 +36,15 @@ public class FlatCaret implements UIResource { private final String selectAllOnFocusPolicy; + private final boolean selectAllOnMouseClick; private boolean wasFocused; private boolean wasTemporaryLost; private boolean isMousePressed; - public FlatCaret( String selectAllOnFocusPolicy ) { + public FlatCaret( String selectAllOnFocusPolicy, boolean selectAllOnMouseClick ) { this.selectAllOnFocusPolicy = selectAllOnFocusPolicy; + this.selectAllOnMouseClick = selectAllOnMouseClick; } @Override @@ -61,7 +63,7 @@ public class FlatCaret @Override public void focusGained( FocusEvent e ) { - if( !wasTemporaryLost && !isMousePressed ) + if( !wasTemporaryLost && (!isMousePressed || selectAllOnMouseClick) ) selectAllOnFocusGained(); wasTemporaryLost = false; wasFocused = true; diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatFormattedTextFieldUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatFormattedTextFieldUI.java index 91772688..8b5f47e1 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatFormattedTextFieldUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatFormattedTextFieldUI.java @@ -45,6 +45,7 @@ import javax.swing.plaf.ComponentUI; * @uiDefault Component.isIntelliJTheme boolean * @uiDefault FormattedTextField.placeholderForeground Color * @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always + * @uiDefault TextComponent.selectAllOnMouseClick boolean * * @author Karl Tauber */ 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 d4e615c3..99c3ac8f 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 @@ -63,6 +63,7 @@ import com.formdev.flatlaf.util.HiDPIUtils; * @uiDefault PasswordField.showCapsLock boolean * @uiDefault PasswordField.capsLockIcon Icon * @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always + * @uiDefault TextComponent.selectAllOnMouseClick boolean * * @author Karl Tauber */ @@ -144,7 +145,8 @@ public class FlatPasswordFieldUI @Override protected Caret createCaret() { - return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy" ) ); + return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy" ), + UIManager.getBoolean( "TextComponent.selectAllOnMouseClick" ) ); } @Override 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 edcc3c0b..ae66cd30 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 @@ -64,6 +64,7 @@ import com.formdev.flatlaf.util.HiDPIUtils; * @uiDefault Component.isIntelliJTheme boolean * @uiDefault TextField.placeholderForeground Color * @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always + * @uiDefault TextComponent.selectAllOnMouseClick boolean * * @author Karl Tauber */ @@ -121,7 +122,8 @@ public class FlatTextFieldUI @Override protected Caret createCaret() { - return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy" ) ); + return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy"), + UIManager.getBoolean( "TextComponent.selectAllOnMouseClick" ) ); } @Override diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties index 06eb3482..7d06af7e 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties @@ -614,6 +614,7 @@ TextArea.background=@textComponentBackground # allowed values: "never", "once" (default) or "always" TextComponent.selectAllOnFocusPolicy=once +TextComponent.selectAllOnMouseClick=false TextComponent.arc=0