Преглед на файлове

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));
 	}