ActionCallback (@NotNull Component c, @Nullable Project project) { // if focus transfer is requested to the active project's window, we call 'requestFocus' to allow focusing detached project windows // (editor or tool windows), otherwise we call 'requestFocusInWindow' to avoid unexpected project switching Project activeProject = ProjectUtil.getActiveProject(); if (activeProject != null) { if (project == null) { project = ProjectUtil.getProjectForComponent(c); } if (project == activeProject) { logFocusRequest(c, project, false); c.requestFocus(); return ActionCallback.DONE; } } logFocusRequest(c, project, true); c.requestFocusInWindow(); return ActionCallback.DONE; }