mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
reenable daemon for editors in modal context
This commit is contained in:
@@ -85,8 +85,6 @@ class DaemonListeners implements Disposable {
|
||||
private final EditorColorsListener myEditorColorsListener = new MyEditorColorsListener();
|
||||
private final PropertyChangeListener myTodoListener = new MyTodoListener();
|
||||
|
||||
private final EditorFactoryListener myEditorFactoryListener;
|
||||
|
||||
private final Project myProject;
|
||||
private final DaemonCodeAnalyzerImpl myDaemonCodeAnalyzer;
|
||||
private final ModalityStateListener myModalityStateListener;
|
||||
@@ -97,7 +95,6 @@ class DaemonListeners implements Disposable {
|
||||
|
||||
private volatile boolean cutOperationJustHappened;
|
||||
private final EditorTracker myEditorTracker;
|
||||
private final EditorTrackerListener myEditorTrackerListener;
|
||||
|
||||
public DaemonListeners(Project project, DaemonCodeAnalyzerImpl daemonCodeAnalyzer, EditorTracker editorTracker) {
|
||||
myProject = project;
|
||||
@@ -137,20 +134,23 @@ class DaemonListeners implements Disposable {
|
||||
eventMulticaster.addEditorMouseListener(new MyEditorMouseListener(), this);
|
||||
|
||||
myEditorTracker = editorTracker;
|
||||
myEditorTrackerListener = new EditorTrackerListener() {
|
||||
EditorTrackerListener editorTrackerListener = new EditorTrackerListener() {
|
||||
private List<Editor> myActiveEditors = Collections.emptyList();
|
||||
|
||||
public void activeEditorsChanged(@NotNull List<Editor> editors) {
|
||||
List<Editor> activeEditors = myEditorTracker.getActiveEditors();
|
||||
if (!myActiveEditors.equals(activeEditors)) {
|
||||
myActiveEditors = activeEditors;
|
||||
stopDaemon(true); // do not stop daemon if idea loses/gains focus
|
||||
if (LaterInvocator.isInModalContext()) {
|
||||
// editor appear in modal context, reenable the daemon
|
||||
myDaemonCodeAnalyzer.setUpdateByTimerEnabled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
myEditorTracker.addEditorTrackerListener(myEditorTrackerListener);
|
||||
myEditorTracker.addEditorTrackerListener(editorTrackerListener, this);
|
||||
|
||||
myEditorFactoryListener = new EditorFactoryAdapter() {
|
||||
EditorFactoryListener editorFactoryListener = new EditorFactoryAdapter() {
|
||||
public void editorCreated(EditorFactoryEvent event) {
|
||||
Editor editor = event.getEditor();
|
||||
Document document = editor.getDocument();
|
||||
@@ -160,7 +160,7 @@ class DaemonListeners implements Disposable {
|
||||
myDaemonCodeAnalyzer.repaintErrorStripeRenderer(editor);
|
||||
}
|
||||
};
|
||||
EditorFactory.getInstance().addEditorFactoryListener(myEditorFactoryListener);
|
||||
EditorFactory.getInstance().addEditorFactoryListener(editorFactoryListener,this);
|
||||
|
||||
PsiDocumentManagerImpl documentManager = (PsiDocumentManagerImpl)PsiDocumentManager.getInstance(myProject);
|
||||
PsiChangeHandler changeHandler = new PsiChangeHandler(myProject, documentManager, EditorFactory.getInstance(),connection,
|
||||
@@ -282,13 +282,11 @@ class DaemonListeners implements Disposable {
|
||||
public void dispose() {
|
||||
EditorEventMulticaster eventMulticaster = EditorFactory.getInstance().getEventMulticaster();
|
||||
|
||||
EditorFactory.getInstance().removeEditorFactoryListener(myEditorFactoryListener);
|
||||
ApplicationManager.getApplication().removeApplicationListener(myApplicationListener);
|
||||
EditorColorsManager.getInstance().removeEditorColorsListener(myEditorColorsListener);
|
||||
TodoConfiguration.getInstance().removePropertyChangeListener(myTodoListener);
|
||||
|
||||
((EditorEventMulticasterEx)eventMulticaster).removeErrorStripeListener(myErrorStripeHandler);
|
||||
myEditorTracker.removeEditorTrackerListener(myEditorTrackerListener);
|
||||
LaterInvocator.removeModalityStateListener(myModalityStateListener);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user