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..2d72e617 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/FlatPasswordFieldUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPasswordFieldUI.java index d4e615c3..9484870f 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 @@ -144,7 +144,7 @@ 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..1f5f160c 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,7 @@ 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 8a184861..46d298e0 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties @@ -607,6 +607,7 @@ TextArea.background=@textComponentBackground # allowed values: "never", "once" (default) or "always" TextComponent.selectAllOnFocusPolicy=once +TextComponent.selectAllOnMouseClick=true TextComponent.arc=0