mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2024-12-23 20:36:44 +00:00
request focus on password field for encrypted locked wallets when wallet window becomes active
This commit is contained in:
parent
542cc7de6f
commit
9bf53ab0cd
1 changed files with 17 additions and 1 deletions
|
@ -12,6 +12,9 @@ import com.sparrowwallet.sparrow.io.Storage;
|
|||
import javafx.application.Platform;
|
||||
import javafx.beans.property.BooleanProperty;
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.value.ChangeListener;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.beans.value.WeakChangeListener;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.Initializable;
|
||||
|
@ -48,8 +51,19 @@ public class WalletController extends WalletFormController implements Initializa
|
|||
|
||||
private BorderPane lockPane;
|
||||
|
||||
private CustomPasswordField passwordField;
|
||||
|
||||
private final BooleanProperty walletEncryptedProperty = new SimpleBooleanProperty(false);
|
||||
|
||||
private final ChangeListener<Boolean> lockFocusListener = new ChangeListener<>() {
|
||||
@Override
|
||||
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
|
||||
if(newValue && getWalletForm().isLocked() && passwordField != null && passwordField.isVisible()) {
|
||||
passwordField.requestFocus();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void initialize(URL location, ResourceBundle resources) {
|
||||
EventManager.get().register(this);
|
||||
|
@ -148,7 +162,7 @@ public class WalletController extends WalletFormController implements Initializa
|
|||
Label label = new Label("Enter password to unlock:");
|
||||
label.managedProperty().bind(label.visibleProperty());
|
||||
label.visibleProperty().bind(walletEncryptedProperty);
|
||||
CustomPasswordField passwordField = new ViewPasswordField();
|
||||
passwordField = new ViewPasswordField();
|
||||
passwordField.setMaxWidth(300);
|
||||
passwordField.managedProperty().bind(passwordField.visibleProperty());
|
||||
passwordField.visibleProperty().bind(walletEncryptedProperty);
|
||||
|
@ -165,6 +179,8 @@ public class WalletController extends WalletFormController implements Initializa
|
|||
stackPane.getChildren().add(vBox);
|
||||
lockPane.setCenter(stackPane);
|
||||
walletPane.getChildren().add(lockPane);
|
||||
|
||||
walletPane.getScene().getWindow().focusedProperty().addListener(new WeakChangeListener<>(lockFocusListener));
|
||||
}
|
||||
|
||||
private void unlockWallet(CustomPasswordField passwordField) {
|
||||
|
|
Loading…
Reference in a new issue