瀏覽代碼

cancel background task, if window is closed

Armin Schrenk 1 年之前
父節點
當前提交
43ad1c05c0
共有 1 個文件被更改,包括 10 次插入1 次删除
  1. 10 1
      src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultLocationController.java

+ 10 - 1
src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultLocationController.java

@@ -131,7 +131,16 @@ public class CreateNewVaultLocationController implements FxController {
 
 	@FXML
 	public void initialize() {
-		backgroundExecutor.submit(this::loadLocationPresets);
+		var task = backgroundExecutor.submit(this::loadLocationPresets);
+		var onHiddenAction = window.getOnHidden();
+		if(onHiddenAction != null) {
+			window.setOnHidden(evt -> {
+				task.cancel(true);
+				onHiddenAction.handle(evt);
+			});
+		} else {
+			window.setOnHidden(_ -> task.cancel(true));
+		}
 		locationPresetsToggler.selectedToggleProperty().addListener(this::togglePredefinedLocation);
 		usePresetPath.bind(locationPresetsToggler.selectedToggleProperty().isNotEqualTo(customRadioButton));
 	}