From 87b67d662462c59d26e10112e541b871bd822ea1 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Thu, 12 May 2011 13:38:54 +0200 Subject: [PATCH] IDEA-69532 (CVS: history view is empty; CompareWith... dialog shows no revisions) --- .../com/intellij/util/WaitForProgressToShow.java | 16 ++++++++++++++++ .../cvsExecution/ModalityContextImpl.java | 3 +-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/util/WaitForProgressToShow.java b/platform/platform-impl/src/com/intellij/util/WaitForProgressToShow.java index 9d2ef62a0a05..1a1bd088b2fa 100644 --- a/platform/platform-impl/src/com/intellij/util/WaitForProgressToShow.java +++ b/platform/platform-impl/src/com/intellij/util/WaitForProgressToShow.java @@ -46,6 +46,22 @@ public class WaitForProgressToShow { } } + public static void runOrInvokeAndWaitAboveProgress(final Runnable command, @Nullable final ModalityState modalityState) { + final Application application = ApplicationManager.getApplication(); + if (application.isDispatchThread()) { + command.run(); + } else { + final ProgressIndicator pi = ProgressManager.getInstance().getProgressIndicator(); + if (pi != null) { + execute(pi); + application.invokeAndWait(command, pi.getModalityState()); + } else { + final ModalityState notNullModalityState = modalityState == null ? ModalityState.NON_MODAL : modalityState; + application.invokeAndWait(command, notNullModalityState); + } + } + } + public static void runOrInvokeLaterAboveProgress(final Runnable command, @Nullable final ModalityState modalityState, @NotNull final Project project) { final Application application = ApplicationManager.getApplication(); if (application.isDispatchThread()) { diff --git a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsExecution/ModalityContextImpl.java b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsExecution/ModalityContextImpl.java index ca9c2dac949b..b88a34982bdb 100644 --- a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsExecution/ModalityContextImpl.java +++ b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsExecution/ModalityContextImpl.java @@ -47,8 +47,7 @@ public class ModalityContextImpl implements ModalityContext { action.run(); } else { - ModalityState modalityState = getCurrentModalityState(); - WaitForProgressToShow.runOrInvokeLaterAboveProgress(action, modalityState, project); + WaitForProgressToShow.runOrInvokeAndWaitAboveProgress(action, getCurrentModalityState()); } }