update on selected editor change; do not store temp-editor

This commit is contained in:
Gregory.Shrago
2018-03-03 01:03:01 +03:00
parent 19ccffcda4
commit 5ce39944b6
@@ -157,7 +157,7 @@ public class StructureViewWrapperImpl implements StructureViewWrapper, Disposabl
myFirstRun = false;
}
private void setFile(VirtualFile file) {
private void setFile(@Nullable VirtualFile file) {
boolean forceRebuild = !Comparing.equal(file, myFile);
if (!forceRebuild && myStructureView != null) {
StructureViewModel model = myStructureView.getTreeModel();
@@ -168,6 +168,9 @@ public class StructureViewWrapperImpl implements StructureViewWrapper, Disposabl
myStructureView instanceof StructureViewComposite && ((StructureViewComposite)myStructureView).isOutdated()) {
forceRebuild = true;
}
else if (file != null) {
forceRebuild = FileEditorManager.getInstance(myProject).getSelectedEditor(file) != myFileEditor;
}
}
if (forceRebuild) {
myFile = file;
@@ -284,7 +287,7 @@ public class StructureViewWrapperImpl implements StructureViewWrapper, Disposabl
final StructureViewBuilder structureViewBuilder = editor.getStructureViewBuilder();
if (structureViewBuilder != null) {
myStructureView = structureViewBuilder.createStructureView(editor, myProject);
myFileEditor = editor;
myFileEditor = needDisposeEditor ? null : editor;
Disposer.register(this, myStructureView);
updateHeaderActions(myStructureView);