From f33c8aae32be303eb29bfed0e2d03ba5f4263b84 Mon Sep 17 00:00:00 2001 From: Denis Fokin Date: Thu, 14 Nov 2013 15:48:53 +0400 Subject: [PATCH] Improvement for IDEA-106716. We should not rely on the recent focused frame if we have only one empty frame. --- .../com/intellij/openapi/wm/impl/WindowManagerImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowManagerImpl.java index 47b3385a0356..8a59c04b2ab4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowManagerImpl.java @@ -468,6 +468,9 @@ public final class WindowManagerImpl extends WindowManagerEx implements Applicat IdeFrame frame = null; if (project != null) { frame = project.isDefault() ? WelcomeFrame.getInstance() : getFrame(project); + if (frame == null) { + frame = myProject2Frame.get(null); + } } else { Container eachParent = getMostRecentFocusedWindow(); @@ -573,12 +576,16 @@ public final class WindowManagerImpl extends WindowManagerEx implements Applicat } } + private IdeFrameImpl getDefaultEmptyIdeFrame() { + return myProject2Frame.get(null); + } + public final IdeFrameImpl allocateFrame(final Project project) { LOG.assertTrue(!myProject2Frame.containsKey(project)); final IdeFrameImpl frame; if (myProject2Frame.containsKey(null)) { - frame = myProject2Frame.get(null); + frame = getDefaultEmptyIdeFrame(); myProject2Frame.remove(null); myProject2Frame.put(project, frame); frame.setProject(project);