diff --git a/platform/navbar/frontend/src/NavBarRootPaneExtension.kt b/platform/navbar/frontend/src/NavBarRootPaneExtension.kt index a95f31839a97..77f84fa05dbf 100644 --- a/platform/navbar/frontend/src/NavBarRootPaneExtension.kt +++ b/platform/navbar/frontend/src/NavBarRootPaneExtension.kt @@ -195,13 +195,12 @@ internal class MyNavBarWrapperPanel(private val project: Project, useAsComponent //return !UISettings.getInstance().showMainToolbar && runToolbarExists(); } - private fun runToolbarExists(): Boolean { - if (navToolbarGroupExist == null) { - val correctedAction = CustomActionsSchema.getInstance().getCorrectedAction(IdeActions.GROUP_NAVBAR_TOOLBAR) - navToolbarGroupExist = correctedAction is DefaultActionGroup && correctedAction.childrenCount > 0 || - correctedAction is CustomisedActionGroup && correctedAction.getFirstAction() != null - } - return navToolbarGroupExist!! + private fun runToolbarExists(): Boolean = navToolbarGroupExist ?: run { + when (val o = CustomActionsSchema.getInstance().getCorrectedAction(IdeActions.GROUP_NAVBAR_TOOLBAR)) { + is DefaultActionGroup -> o.childrenCount > 0 + is CustomisedActionGroup -> o.defaultChildrenOrStubs.size > 0 + else -> false + }.also { navToolbarGroupExist = it } } private fun toggleNavPanel(settings: UISettings) { @@ -315,15 +314,13 @@ private fun isNeedGap(group: AnAction): Boolean { } private fun getFirstAction(group: AnAction): AnAction? { - if (group is CustomisedActionGroup) { - return group.getFirstAction() + val actionsOrStubs = when (group) { + is DefaultActionGroup -> group.childActionsOrStubs + is CustomisedActionGroup -> group.defaultChildrenOrStubs + else -> AnAction.EMPTY_ARRAY } - else if (group !is DefaultActionGroup) { - return null - } - var firstAction: AnAction? = null - for (action in group.getChildActionsOrStubs()) { + for (action in actionsOrStubs) { if (action is DefaultActionGroup) { firstAction = getFirstAction(action) } diff --git a/platform/platform-impl/api-dump-unreviewed.txt b/platform/platform-impl/api-dump-unreviewed.txt index 7333d471e2ee..aa415971046b 100644 --- a/platform/platform-impl/api-dump-unreviewed.txt +++ b/platform/platform-impl/api-dump-unreviewed.txt @@ -4357,7 +4357,6 @@ f:com.intellij.ide.ui.customization.CustomisedActionGroup - (java.lang.String,com.intellij.openapi.actionSystem.ActionGroup,com.intellij.ide.ui.customization.CustomActionsSchema,java.lang.String,java.lang.String):V - equals(java.lang.Object):Z - getChildren(com.intellij.openapi.actionSystem.AnActionEvent):com.intellij.openapi.actionSystem.AnAction[] -- getFirstAction():com.intellij.openapi.actionSystem.AnAction - getOrigin():com.intellij.openapi.actionSystem.ActionGroup - hashCode():I - resetChildren():V diff --git a/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomisedActionGroup.java b/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomisedActionGroup.java index 6de6eee3a363..e9c1c1e90542 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomisedActionGroup.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/customization/CustomisedActionGroup.java @@ -60,11 +60,6 @@ public final class CustomisedActionGroup extends ActionGroupWrapper { delegate, g.getChildActionsOrStubs(), mySchema, myDefaultGroupName, myRootGroupName); } - public @Nullable AnAction getFirstAction() { - AnAction[] children = getChildren(null); - return children.length > 0 ? children[0] : null; - } - /** @deprecated Use {@link #getDelegate()} instead */ @Deprecated(forRemoval = true) public @NotNull ActionGroup getOrigin() { return getDelegate(); }