diff --git a/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesController.java b/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesController.java index 67d1d8ae4..56d563530 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/preferences/PreferencesController.java @@ -4,6 +4,9 @@ import javafx.beans.binding.BooleanBinding; import javafx.fxml.FXML; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; import javafx.stage.Stage; import javafx.stage.WindowEvent; import org.cryptomator.ui.common.FxController; @@ -35,6 +38,9 @@ public class PreferencesController implements FxController { if (updateAvailable.get()) { tabPane.getSelectionModel().select(updatesTab); } + + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + window.getScene().getAccelerators().put(cmdW, window::close); } } diff --git a/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsController.java b/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsController.java index 9b525c2a3..bea97f7cb 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/vaultoptions/VaultOptionsController.java @@ -1,5 +1,11 @@ package org.cryptomator.ui.vaultoptions; +import javafx.fxml.FXML; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; +import javafx.stage.Stage; +import javafx.stage.WindowEvent; import org.cryptomator.ui.common.FxController; import javax.inject.Inject; @@ -7,7 +13,21 @@ import javax.inject.Inject; @VaultOptionsScoped public class VaultOptionsController implements FxController { + private final Stage window; + @Inject - VaultOptionsController(){} + VaultOptionsController(@VaultOptionsWindow Stage window) { + this.window = window; + } + + @FXML + public void initialize() { + window.setOnShowing(this::windowWillAppear); + } + + private void windowWillAppear(WindowEvent windowEvent) { + KeyCombination cmdW = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN); + window.getScene().getAccelerators().put(cmdW, window::close); + } }