mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-161165 Per Project Modality: when Commit or Push dialog is shown in one IDEA window, Code Analyzing hangs with 99% completed in the other window
This commit is contained in:
@@ -57,6 +57,7 @@ import com.intellij.openapi.roots.ModuleRootEvent;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.UserDataHolderEx;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.vcs.*;
|
||||
import com.intellij.openapi.vcs.changes.VcsDirtyScopeManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -325,8 +326,8 @@ public class DaemonListeners implements Disposable {
|
||||
|
||||
ModalityStateListener modalityStateListener = entering -> {
|
||||
// before showing dialog we are in non-modal context yet, and before closing dialog we are still in modal context
|
||||
boolean inModalContext = LaterInvocator.isInModalContext();
|
||||
stopDaemon(inModalContext, "Modality change. Was modal: "+inModalContext);
|
||||
boolean inModalContext = Registry.is("ide.perProjectModality") || LaterInvocator.isInModalContext();
|
||||
stopDaemon(inModalContext, "Modality change. Was modal: " + inModalContext);
|
||||
myDaemonCodeAnalyzer.setUpdateByTimerEnabled(inModalContext);
|
||||
};
|
||||
LaterInvocator.addModalityStateListener(modalityStateListener,this);
|
||||
|
||||
+2
-1
@@ -44,6 +44,7 @@ import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.Functions;
|
||||
@@ -522,7 +523,7 @@ class PassExecutorService implements Disposable {
|
||||
else {
|
||||
log(updateProgress, pass, "Finished but there are passes in the queue: " + threadsToStartCountdown.get());
|
||||
}
|
||||
}, ModalityState.stateForComponent(fileEditor.getComponent()));
|
||||
}, Registry.is("ide.perProjectModality") ? ModalityState.current() : ModalityState.stateForComponent(fileEditor.getComponent()));
|
||||
}
|
||||
|
||||
protected boolean isDisposed() {
|
||||
|
||||
Reference in New Issue
Block a user