diff --git a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java index 7373293b59ad..7d15daffbcc5 100644 --- a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java +++ b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java @@ -132,6 +132,15 @@ public abstract class RecentProjectsManagerBase extends RecentProjectsManager im myState = state; } + private static void removePathFrom(List items, String path) { + for (Iterator iterator = items.iterator(); iterator.hasNext();) { + final String next = iterator.next(); + if (SystemInfo.isFileSystemCaseSensitive ? path.equals(next) : path.equalsIgnoreCase(next)) { + iterator.remove(); + } + } + } + @Override public void removePath(@Nullable String path) { if (path == null) { @@ -139,17 +148,10 @@ public abstract class RecentProjectsManagerBase extends RecentProjectsManager im } synchronized (myStateLock) { - if (SystemInfo.isFileSystemCaseSensitive) { - myState.recentPaths.remove(path); - myState.names.remove(path); - } - else { - for (Iterator iterator = myState.recentPaths.iterator(); iterator.hasNext(); ) { - if (path.equalsIgnoreCase(iterator.next())) { - iterator.remove(); - myState.names.remove(path); - } - } + removePathFrom(myState.recentPaths, path); + myState.names.remove(path); + for (ProjectGroup group : myState.groups) { + group.removeProject(path); } } }