diff --git a/pom.xml b/pom.xml index 4e66590f4..3167116b1 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ 1.9.0 1.6.1 1.5.0 - 1.7.0 + 1.8.0-beta1 6.0.1 3.0.2 1.2.12 diff --git a/src/main/java/org/cryptomator/ui/fxapp/JfxRevealPathService.java b/src/main/java/org/cryptomator/ui/fxapp/JfxRevealPathService.java index 1271f42e8..5a81f0381 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/JfxRevealPathService.java +++ b/src/main/java/org/cryptomator/ui/fxapp/JfxRevealPathService.java @@ -6,6 +6,7 @@ import org.cryptomator.integrations.common.Priority; import org.cryptomator.integrations.revealpath.RevealFailedException; import org.cryptomator.integrations.revealpath.RevealPathService; +import java.nio.file.Files; import java.nio.file.Path; /** @@ -17,14 +18,17 @@ import java.nio.file.Path; */ @DisplayName("JavaFX HostServices (GTK)") @OperatingSystem(OperatingSystem.Value.LINUX) -@Priority(10) +@Priority(Priority.FALLBACK) public class JfxRevealPathService implements RevealPathService { @Override public void reveal(Path p) throws RevealFailedException { + var absPath = p.toAbsolutePath(); var fxApp = FxApplication.INSTANCE.get(); if (fxApp != null) { - fxApp.getHostServices().showDocument(p.toUri().toString()); + // showDocument() launches the default app for a regular file, so reveal its parent directory instead + var target = Files.isRegularFile(absPath) ? absPath.getParent() : absPath; + fxApp.getHostServices().showDocument(target.toUri().toString()); } else { throw new RevealFailedException("JavaFX Application not initialized"); }