From 4f80e698de96011636aa88dbc754d43900697f20 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 24 Nov 2016 16:13:35 +0100 Subject: [PATCH] a more concise way to cancel project-bound progresses automatically on project disposal (IDEA-CR-15966) --- .../openapi/progress/util/ProgressWindow.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressWindow.java b/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressWindow.java index 05875a6ac945..d2f42fb7c042 100644 --- a/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressWindow.java +++ b/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressWindow.java @@ -64,7 +64,6 @@ public class ProgressWindow extends ProgressIndicatorBase implements BlockingPro private String myProcessId = ""; @Nullable private volatile Runnable myBackgroundHandler; private int myDelayInMillis = DEFAULT_PROGRESS_DIALOG_POSTPONE_TIME_MILLIS; - @Nullable private Disposable myCancelOnProjectDisposal; public interface Listener { void progressWindowCreated(ProgressWindow pw); @@ -122,12 +121,7 @@ public class ProgressWindow extends ProgressIndicatorBase implements BlockingPro ApplicationManager.getApplication().getMessageBus().syncPublisher(TOPIC).progressWindowCreated(this); if (myProject != null) { - myCancelOnProjectDisposal = () -> { - if (isRunning()) { - cancel(); - } - }; - Disposer.register(myProject, myCancelOnProjectDisposal); + Disposer.register(myProject, this); } } @@ -398,8 +392,8 @@ public class ProgressWindow extends ProgressIndicatorBase implements BlockingPro @Override public void dispose() { stopSystemActivity(); - if (myCancelOnProjectDisposal != null) { - Disposer.dispose(myCancelOnProjectDisposal); + if (isRunning()) { + cancel(); } }