diff --git a/platform/non-modal-welcome-screen/resources/intellij.platform.ide.nonModalWelcomeScreen.xml b/platform/non-modal-welcome-screen/resources/intellij.platform.ide.nonModalWelcomeScreen.xml index e27acbe602f5..f5d1ef2963da 100644 --- a/platform/non-modal-welcome-screen/resources/intellij.platform.ide.nonModalWelcomeScreen.xml +++ b/platform/non-modal-welcome-screen/resources/intellij.platform.ide.nonModalWelcomeScreen.xml @@ -41,6 +41,7 @@ + diff --git a/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/WelcomeScreenEditorSkeletonPolicy.kt b/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/WelcomeScreenEditorSkeletonPolicy.kt new file mode 100644 index 000000000000..f8b4b2950787 --- /dev/null +++ b/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/WelcomeScreenEditorSkeletonPolicy.kt @@ -0,0 +1,12 @@ +// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.platform.ide.nonModalWelcomeScreen + +import com.intellij.openapi.fileEditor.FileEditorComposite +import com.intellij.openapi.fileEditor.impl.EditorComposite +import com.intellij.openapi.fileEditor.impl.EditorSkeletonPolicy +import com.intellij.platform.ide.nonModalWelcomeScreen.rightTab.WelcomeScreenRightTabVirtualFile + +internal class WelcomeScreenEditorSkeletonPolicy : EditorSkeletonPolicy { + override fun shouldShowSkeleton(fileEditorComposite: FileEditorComposite): Boolean = + (fileEditorComposite as? EditorComposite)?.file !is WelcomeScreenRightTabVirtualFile +} diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorSkeletonEnabled.kt b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorSkeletonEnabled.kt index 912edf228921..ca2e5ace01fd 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorSkeletonEnabled.kt +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorSkeletonEnabled.kt @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus * for a given file editor composite. * * If there is no policy registered for a given file editor composite, editor skeleton **will not** be shown. - * If at least one policy returns true from [shouldShowSkeleton], editor skeleton will be shown. + * If all policies return true from [shouldShowSkeleton], editor skeleton will be shown. * * @see EditorSkeleton */ @@ -21,17 +21,18 @@ interface EditorSkeletonPolicy { * Determines whether a skeleton view should be displayed for the given file editor composite. * * @param fileEditorComposite the file editor composite to evaluate - * @return true if a skeleton view should be displayed for the provided file editor composite, false otherwise + * @return `true` if a skeleton view should be displayed for the provided file editor composite, `false` otherwise. + * Returning `true` does not guarantee that a skeleton view will be shown, returning `false` guarantees that a skeleton view will not be shown. * * @see EditorSkeleton */ fun shouldShowSkeleton(fileEditorComposite: FileEditorComposite): Boolean companion object { - private val EP_NAME: ExtensionPointName = ExtensionPointName("com.intellij.editorSkeletonPolicy") + private val EP_NAME: ExtensionPointName = ExtensionPointName("com.intellij.editorSkeletonPolicy") internal fun shouldShowSkeleton(fileEditorComposite: FileEditorComposite): Boolean { - return EP_NAME.extensionList.any { it.shouldShowSkeleton(fileEditorComposite) } + return EP_NAME.extensionList.isNotEmpty() && EP_NAME.extensionList.all { it.shouldShowSkeleton(fileEditorComposite) } } } -} \ No newline at end of file +}