ActionCallback (boolean forced) { Component toFocus = null; IdeFrame lastFocusedFrame = myLastFocusedFrame; if (lastFocusedFrame == null) { for (Window window : Window.getWindows()) { if (window instanceof RootPaneContainer && ((RootPaneContainer)window).getRootPane() != null && window.isActive()) { Component toFocusOptional = getFocusTargetFor(((RootPaneContainer)window).getRootPane()); if (toFocusOptional != null) { toFocus = toFocusOptional; } break; } } } else { LOG.assertTrue(lastFocusedFrame instanceof Window); toFocus = myLastFocused.get(lastFocusedFrame); if (toFocus == null || !toFocus.isShowing()) { toFocus = getFocusTargetFor(lastFocusedFrame.getComponent()); } } if (toFocus != null) { return requestFocusInProject(toFocus, null); } return ActionCallback.DONE; }