diff --git a/platform/lang-impl/src/com/intellij/openapi/fileEditor/impl/UniqueVFilePathBuilderImpl.java b/platform/lang-impl/src/com/intellij/openapi/fileEditor/impl/UniqueVFilePathBuilderImpl.java index 9f304460b8e1..1c6f3e41eca6 100644 --- a/platform/lang-impl/src/com/intellij/openapi/fileEditor/impl/UniqueVFilePathBuilderImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/fileEditor/impl/UniqueVFilePathBuilderImpl.java @@ -125,9 +125,11 @@ public class UniqueVFilePathBuilderImpl extends UniqueVFilePathBuilder { setOfFilesWithTheSameName.add(openFile); } } - for (VirtualFile recentlyEditedFile : EditorHistoryManager.getInstance(project).getFiles()) { - if (recentlyEditedFile.getName().equals(fileName)) { - setOfFilesWithTheSameName.add(recentlyEditedFile); + if (!skipNonOpenedFiles) { + for (VirtualFile recentlyEditedFile : EditorHistoryManager.getInstance(project).getFiles()) { + if (recentlyEditedFile.getName().equals(fileName)) { + setOfFilesWithTheSameName.add(recentlyEditedFile); + } } } diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java index 076c2e88bd44..c1b7506e4d3f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java @@ -339,7 +339,7 @@ public final class EditorTabbedContainer implements Disposable, CloseAction.Clos TabInfo tab = myTabs.findInfo(file); if (tab != null) return; - tab = new TabInfo(comp).setText(calcTabTitle(myProject, file, true)).setIcon(icon).setTooltipText(tooltip).setObject(file) + tab = new TabInfo(comp).setText(calcTabTitle(myProject, file)).setIcon(icon).setTooltipText(tooltip).setObject(file) .setTabColor(calcTabColor(myProject, file)).setDragOutDelegate(myDragOutDelegate); tab.setTestableUi(new MyQueryable(tab)); @@ -383,10 +383,6 @@ public final class EditorTabbedContainer implements Disposable, CloseAction.Clos } public static String calcTabTitle(final Project project, final VirtualFile file) { - return calcTabTitle(project, file, true); - } - - public static String calcTabTitle(final Project project, final VirtualFile file, boolean skipNonOpenedFiles) { for (EditorTabTitleProvider provider : Extensions.getExtensions(EditorTabTitleProvider.EP_NAME)) { final String result = provider.getEditorTabTitle(project, file); if (result != null) { diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java index 2373cb8f1940..b73b309d303e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java @@ -408,10 +408,14 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener } } - void updateFileName(final VirtualFile updatedFile) { + void updateFileName(@Nullable final VirtualFile updatedFile) { final EditorWindow[] windows = getWindows(); for (int i = 0; i != windows.length; ++ i) { - windows [i].updateFileName(updatedFile); + for (VirtualFile file : windows[i].getFiles()) { + if (updatedFile == null || file.getName().equals(updatedFile.getName())) { + windows[i].updateFileName(file); + } + } } Project project = myManager.getProject(); diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java index e489d9871d2e..4f09ef9a710a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java @@ -859,7 +859,6 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Persis if (newEditor) { clearWindowIfNeeded(window); - ourOpenFilesSetModificationCount.incrementAndGet(); getProject().getMessageBus().syncPublisher(FileEditorManagerListener.Before.FILE_EDITOR_MANAGER).beforeFileOpened(FileEditorManagerImpl.this, file); FileEditor[] newEditors = new FileEditor[newProviders.length]; @@ -947,6 +946,7 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Persis .fileOpened(FileEditorManagerImpl.this, file); } }); + ourOpenFilesSetModificationCount.incrementAndGet(); } //[jeka] this is a hack to support back-forward navigation @@ -2007,6 +2007,7 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Persis public void removeSelectionRecord(@NotNull VirtualFile file, @NotNull EditorWindow window) { mySelectionHistory.remove(Pair.create(file, window)); + updateFileName(file); } @NotNull