Merge pull request #202 into master

TextField: allow select all on mouse click
This commit is contained in:
Karl Tauber
2020-11-05 17:07:29 +01:00
5 changed files with 12 additions and 4 deletions

View File

@@ -36,13 +36,15 @@ public class FlatCaret
implements UIResource implements UIResource
{ {
private final String selectAllOnFocusPolicy; private final String selectAllOnFocusPolicy;
private final boolean selectAllOnMouseClick;
private boolean wasFocused; private boolean wasFocused;
private boolean wasTemporaryLost; private boolean wasTemporaryLost;
private boolean isMousePressed; private boolean isMousePressed;
public FlatCaret( String selectAllOnFocusPolicy ) { public FlatCaret( String selectAllOnFocusPolicy, boolean selectAllOnMouseClick ) {
this.selectAllOnFocusPolicy = selectAllOnFocusPolicy; this.selectAllOnFocusPolicy = selectAllOnFocusPolicy;
this.selectAllOnMouseClick = selectAllOnMouseClick;
} }
@Override @Override
@@ -61,7 +63,7 @@ public class FlatCaret
@Override @Override
public void focusGained( FocusEvent e ) { public void focusGained( FocusEvent e ) {
if( !wasTemporaryLost && !isMousePressed ) if( !wasTemporaryLost && (!isMousePressed || selectAllOnMouseClick) )
selectAllOnFocusGained(); selectAllOnFocusGained();
wasTemporaryLost = false; wasTemporaryLost = false;
wasFocused = true; wasFocused = true;

View File

@@ -45,6 +45,7 @@ import javax.swing.plaf.ComponentUI;
* @uiDefault Component.isIntelliJTheme boolean * @uiDefault Component.isIntelliJTheme boolean
* @uiDefault FormattedTextField.placeholderForeground Color * @uiDefault FormattedTextField.placeholderForeground Color
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always * @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
* @uiDefault TextComponent.selectAllOnMouseClick boolean
* *
* @author Karl Tauber * @author Karl Tauber
*/ */

View File

@@ -63,6 +63,7 @@ import com.formdev.flatlaf.util.HiDPIUtils;
* @uiDefault PasswordField.showCapsLock boolean * @uiDefault PasswordField.showCapsLock boolean
* @uiDefault PasswordField.capsLockIcon Icon * @uiDefault PasswordField.capsLockIcon Icon
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always * @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
* @uiDefault TextComponent.selectAllOnMouseClick boolean
* *
* @author Karl Tauber * @author Karl Tauber
*/ */
@@ -144,7 +145,8 @@ public class FlatPasswordFieldUI
@Override @Override
protected Caret createCaret() { protected Caret createCaret() {
return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy" ) ); return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy" ),
UIManager.getBoolean( "TextComponent.selectAllOnMouseClick" ) );
} }
@Override @Override

View File

@@ -64,6 +64,7 @@ import com.formdev.flatlaf.util.HiDPIUtils;
* @uiDefault Component.isIntelliJTheme boolean * @uiDefault Component.isIntelliJTheme boolean
* @uiDefault TextField.placeholderForeground Color * @uiDefault TextField.placeholderForeground Color
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always * @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
* @uiDefault TextComponent.selectAllOnMouseClick boolean
* *
* @author Karl Tauber * @author Karl Tauber
*/ */
@@ -121,7 +122,8 @@ public class FlatTextFieldUI
@Override @Override
protected Caret createCaret() { protected Caret createCaret() {
return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy" ) ); return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy"),
UIManager.getBoolean( "TextComponent.selectAllOnMouseClick" ) );
} }
@Override @Override

View File

@@ -614,6 +614,7 @@ TextArea.background=@textComponentBackground
# allowed values: "never", "once" (default) or "always" # allowed values: "never", "once" (default) or "always"
TextComponent.selectAllOnFocusPolicy=once TextComponent.selectAllOnFocusPolicy=once
TextComponent.selectAllOnMouseClick=false
TextComponent.arc=0 TextComponent.arc=0