diff --git a/pom.xml b/pom.xml
index 3911795c2..609c36eb4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,7 +38,7 @@
1.2.4
1.2.2
1.4.0-beta2
- 4.0.0-beta4
+ 4.0.0-beta5
2.0.0
2.0.5
diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java
index 8f0a91d58..644f361cb 100644
--- a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java
+++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java
@@ -7,6 +7,7 @@ import org.cryptomator.cryptofs.CryptoFileSystemProvider;
import org.cryptomator.cryptofs.DirStructure;
import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent;
import org.cryptomator.ui.common.FxController;
+import org.cryptomator.ui.fxapp.FxApplicationWindows;
import org.cryptomator.ui.removevault.RemoveVaultComponent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,6 +38,7 @@ import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.util.EnumSet;
+import java.util.Optional;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.stream.Collectors;
@@ -64,6 +66,7 @@ public class VaultListController implements FxController {
private final VaultListManager vaultListManager;
private final BooleanProperty draggingVaultOver = new SimpleBooleanProperty();
private final ResourceBundle resourceBundle;
+ private final FxApplicationWindows appWindows;
public ListView vaultList;
public StackPane root;
@@ -79,7 +82,8 @@ public class VaultListController implements FxController {
AddVaultWizardComponent.Builder addVaultWizard, //
RemoveVaultComponent.Builder removeVaultDialogue, //
VaultListManager vaultListManager, //
- ResourceBundle resourceBundle) {
+ ResourceBundle resourceBundle, //
+ FxApplicationWindows appWindows) {
this.mainWindow = mainWindow;
this.vaults = vaults;
this.selectedVault = selectedVault;
@@ -88,6 +92,7 @@ public class VaultListController implements FxController {
this.removeVaultDialogue = removeVaultDialogue;
this.vaultListManager = vaultListManager;
this.resourceBundle = resourceBundle;
+ this.appWindows = appWindows;
this.emptyVaultList = Bindings.isEmpty(vaults);
@@ -108,6 +113,15 @@ public class VaultListController implements FxController {
});
vaultList.addEventFilter(MouseEvent.MOUSE_RELEASED, this::deselect);
+ //unlock vault on double click
+ vaultList.addEventFilter(MouseEvent.MOUSE_CLICKED, click -> {
+ if (click.getClickCount() >= 2) {
+ Optional.ofNullable(selectedVault.get())
+ .filter(Vault::isLocked)
+ .ifPresent(vault -> appWindows.startUnlockWorkflow(vault, mainWindow));
+ }
+ });
+
//don't show context menu when no vault selected
vaultList.addEventFilter(ContextMenuEvent.CONTEXT_MENU_REQUESTED, request -> {
if (selectedVault.get() == null) {