IDEA-143449 Editor leak on closing all projects

After-review ROLLBACK
This commit is contained in:
Vassiliy.Kudryashov
2015-10-28 14:14:18 +03:00
parent cd00b57bee
commit e3940bac97
3 changed files with 3 additions and 31 deletions
@@ -17,12 +17,9 @@ package com.intellij.ui;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.EditorFactory;
import com.intellij.openapi.editor.ex.EditorEx;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.project.ProjectManagerAdapter;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.Nullable;
@@ -37,21 +34,11 @@ public class EditorComboBoxEditor implements ComboBoxEditor{
private final EditorTextField myTextField;
@NonNls protected static final String NAME = "ComboBox.textField";
public EditorComboBoxEditor(final Project project, FileType fileType) {
public EditorComboBoxEditor(Project project, FileType fileType) {
myTextField = new ComboboxEditorTextField((Document)null, project, fileType) {
@Override
protected EditorEx createEditor() {
final EditorEx editor = super.createEditor();
ProjectManagerAdapter adapter = new ProjectManagerAdapter() {
@Override
public void projectClosing(Project project) {
if (!editor.isDisposed()) {
EditorFactory.getInstance().releaseEditor(editor);
}
}
};
ProjectManager.getInstance().addProjectManagerListener(adapter, project);
EditorEx editor = super.createEditor();
onEditorCreate(editor);
return editor;
}
@@ -314,7 +314,7 @@ public class EditorTextField extends NonOpaquePanel implements DocumentListener,
}
void releaseEditor(@NotNull final Editor editor) {
if (myProject != null && !myProject.isDisposed() && myIsViewer) {
if (myProject != null && myIsViewer) {
final PsiFile psiFile = PsiDocumentManager.getInstance(myProject).getPsiFile(editor.getDocument());
if (psiFile != null) {
DaemonCodeAnalyzer.getInstance(myProject).setHighlightingEnabled(psiFile, true);
@@ -18,8 +18,6 @@ package com.intellij.xdebugger.impl.breakpoints.ui;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.project.ProjectManagerAdapter;
import com.intellij.openapi.ui.popup.Balloon;
import com.intellij.openapi.util.Disposer;
import com.intellij.xdebugger.impl.breakpoints.XBreakpointUtil;
@@ -63,11 +61,6 @@ public class BreakpointsDialogFactory {
if (myDialogShowing != null) {
return;
}
final Disposable disposable = new Disposable() {
@Override
public void dispose() {
}
};
final BreakpointsDialog dialog = new BreakpointsDialog(myProject, initialBreakpoint != null ? initialBreakpoint : myBreakpoint, XBreakpointUtil.collectPanelProviders()) {
@Override
@@ -79,16 +72,8 @@ public class BreakpointsDialogFactory {
myDialogShowing = null;
super.dispose();
Disposer.dispose(disposable);
}
};
ProjectManagerAdapter adapter = new ProjectManagerAdapter() {
@Override
public void projectClosing(Project project) {
dialog.dispose();
}
};
ProjectManager.getInstance().addProjectManagerListener(adapter, disposable);
if (myBalloonToHide != null) {
if (!myBalloonToHide.isDisposed()) {