diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/PluginUpdateDialog.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/PluginUpdateDialog.java index 41e067890d63..7677d955cbba 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/PluginUpdateDialog.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/PluginUpdateDialog.java @@ -184,7 +184,7 @@ public class PluginUpdateDialog extends DialogWrapper { public static boolean showDialogAndUpdate(@NotNull PluginUpdateDialog dialog) { if (dialog.showAndGet()) { - PluginUpdateHandler.installUpdates(dialog.getSelectedPluginModels(), dialog.getContentPanel(), dialog.myFinishCallback, null); + PluginUpdateHandler.installUpdatesInBackground(dialog.getSelectedPluginModels(), dialog.getContentPanel(), dialog.myFinishCallback, null); return true; } return false; diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/PluginUpdateHandler.kt b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/PluginUpdateHandler.kt index 74c3cfd17604..ff5793591b31 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/PluginUpdateHandler.kt +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/PluginUpdateHandler.kt @@ -3,8 +3,12 @@ package com.intellij.openapi.updateSettings.impl import com.intellij.ide.plugins.api.PluginDto import com.intellij.ide.plugins.newui.PluginUiModel +import com.intellij.openapi.components.service import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.runBlockingMaybeCancellable +import com.intellij.platform.ide.CoreUiCoroutineScopeHolder +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import kotlinx.serialization.Serializable import kotlinx.serialization.Transient import org.jetbrains.annotations.ApiStatus @@ -26,13 +30,13 @@ interface PluginUpdateHandler { fun getInstance(): PluginUpdateHandler = PluginUpdateHandlerProvider.getInstance().getPluginUpdateHandler() @JvmStatic - fun installUpdates( + fun installUpdatesInBackground( updates: Collection, component: JComponent?, finishCallback: Runnable?, customRestarter: Consumer? = null, ) { - runBlockingMaybeCancellable { + service().coroutineScope.launch(Dispatchers.IO) { getInstance().installUpdates(updates, component, finishCallback, customRestarter) } }