diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowInfoImpl.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowInfoImpl.kt index 029f190c9fc5..7be4c4153e6d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowInfoImpl.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowInfoImpl.kt @@ -102,7 +102,7 @@ class WindowInfoImpl : Cloneable, WindowInfo, BaseState() { override val isDocked: Boolean get() = type == ToolWindowType.DOCKED - fun normalizeAfterRead() { + internal fun normalizeAfterRead() { setTypeAndCheck(type) if (isVisible && id != null && !canActivateOnStart(id!!)) { @@ -150,14 +150,12 @@ private class ToolWindowAnchorConverter : Converter() { } private fun canActivateOnStart(id: String): Boolean { - for (ep in listOf( - ToolWindowEP.EP_NAME.extensionList, - FacetDependentToolWindow.EXTENSION_POINT_NAME.extensionList, - LibraryDependentToolWindow.EXTENSION_POINT_NAME.extensionList).flatten() - ) { - if (id == ep.id) { - return !ep.isDoNotActivateOnStart - } - } - return true + val ep = findEp(ToolWindowEP.EP_NAME.iterable, id) + ?: findEp(FacetDependentToolWindow.EXTENSION_POINT_NAME.iterable, id) + ?: findEp(LibraryDependentToolWindow.EXTENSION_POINT_NAME.iterable, id) + return ep == null || !ep.isDoNotActivateOnStart +} + +private fun findEp(list: Iterable, id: String): ToolWindowEP? { + return list.firstOrNull { id == it.id } } \ No newline at end of file