Просмотр исходного кода

Merge branch 'develop' into feature/gtk2-launcher

Sebastian Stenzel 3 лет назад
Родитель
Сommit
2ce7e84e3c

+ 1 - 1
dist/linux/common/org.cryptomator.Cryptomator.desktop

@@ -7,5 +7,5 @@ Terminal=false
 Type=Application
 Categories=Utility;Security;FileTools;
 StartupNotify=true
-StartupWMClass=org.cryptomator.launcher.Cryptomator
+StartupWMClass=org.cryptomator.launcher.Cryptomator$MainApp
 MimeType=application/vnd.cryptomator.encrypted;application/vnd.cryptomator.vault;

+ 10 - 4
src/main/java/org/cryptomator/ui/fxapp/FxApplicationWindows.java

@@ -97,15 +97,15 @@ public class FxApplicationWindows {
 	}
 
 	public CompletionStage<Stage> showMainWindow() {
-		return CompletableFuture.supplyAsync(mainWindow.get()::showMainWindow, Platform::runLater);
+		return CompletableFuture.supplyAsync(mainWindow.get()::showMainWindow, Platform::runLater).whenComplete(this::reportErrors);
 	}
 
 	public CompletionStage<Stage> showPreferencesWindow(SelectedPreferencesTab selectedTab) {
-		return CompletableFuture.supplyAsync(() -> preferencesWindow.get().showPreferencesWindow(selectedTab), Platform::runLater);
+		return CompletableFuture.supplyAsync(() -> preferencesWindow.get().showPreferencesWindow(selectedTab), Platform::runLater).whenComplete(this::reportErrors);
 	}
 
 	public CompletionStage<Stage> showQuitWindow(QuitResponse response) {
-		return CompletableFuture.supplyAsync(() -> quitWindow.get().showQuitWindow(response), Platform::runLater);
+		return CompletableFuture.supplyAsync(() -> quitWindow.get().showQuitWindow(response), Platform::runLater).whenComplete(this::reportErrors);
 	}
 
 	public CompletionStage<Void> startUnlockWorkflow(Vault vault, @Nullable Stage owner) {
@@ -143,7 +143,13 @@ public class FxApplicationWindows {
 	 * @return A
 	 */
 	public CompletionStage<Stage> showErrorWindow(Throwable cause, Stage window, @Nullable Scene previousScene) {
-		return CompletableFuture.supplyAsync(() -> errorWindowFactory.create(cause, window, previousScene).show(), Platform::runLater);
+		return CompletableFuture.supplyAsync(() -> errorWindowFactory.create(cause, window, previousScene).show(), Platform::runLater).whenComplete(this::reportErrors);
+	}
+
+	private void reportErrors(@Nullable Stage stage, @Nullable Throwable error) {
+		if (error != null) {
+			LOG.error("Failed to display stage", error);
+		}
 	}
 
 }