diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.kt b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.kt index 9316eab6b352..90688703214b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.kt +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.kt @@ -22,10 +22,7 @@ import com.intellij.openapi.actionSystem.impl.Utils.operationName import com.intellij.openapi.actionSystem.toolbarLayout.RIGHT_ALIGN_KEY import com.intellij.openapi.actionSystem.toolbarLayout.ToolbarLayoutStrategy import com.intellij.openapi.actionSystem.toolbarLayout.autoLayoutStrategy -import com.intellij.openapi.application.ApplicationManager -import com.intellij.openapi.application.EDT -import com.intellij.openapi.application.ModalityState -import com.intellij.openapi.application.asContextElement +import com.intellij.openapi.application.* import com.intellij.openapi.application.impl.InternalUICustomization import com.intellij.openapi.components.service import com.intellij.openapi.diagnostic.logger @@ -295,10 +292,17 @@ open class ActionToolbarImpl @JvmOverloads constructor( updateActionsImmediately() } else { - if (myUpdateOnFirstShowJob != null) return + if (myUpdateOnFirstShowJob != null) { + return + } + launchOnceOnShow("ActionToolbarImpl.updateActionsOnAdd") { - withContext(Dispatchers.EDT) { - updateActionsFirstTime() + withContext(Dispatchers.ui(UiDispatcherKind.RELAX)) { + // a first update really + if (myForcedUpdateRequested && myLastUpdate == null) { + @Suppress("DEPRECATION") + (updateActionsImmediately()) + } } }.apply { myUpdateOnFirstShowJob = this @@ -309,13 +313,6 @@ open class ActionToolbarImpl @JvmOverloads constructor( } } - fun updateActionsFirstTime() { - if (myForcedUpdateRequested && myLastUpdate == null) { // a first update really - @Suppress("DEPRECATION") - updateActionsImmediately() - } - } - private fun isInsideNavBar(): Boolean = ActionPlaces.NAVIGATION_BAR_TOOLBAR == myPlace override fun removeNotify() {