diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurable.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurable.java index 9d524a82c3b6..945ceeb1d4e0 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurable.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurable.java @@ -259,6 +259,12 @@ public final class PluginManagerConfigurable } } + public void scheduleApply() { + if (myPanel != null) { + myPanel.scheduleApply(); + } + } + @Override public void reset() { if (myPanel != null) { diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurablePanel.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurablePanel.java index 89572a21d2cc..db268e82c384 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurablePanel.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurablePanel.java @@ -47,6 +47,8 @@ import com.intellij.openapi.util.NlsContexts; import com.intellij.openapi.util.NlsSafe; import com.intellij.openapi.util.text.HtmlChunk; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.openapi.wm.impl.welcomeScreen.PluginsTabFactory; +import com.intellij.openapi.wm.impl.welcomeScreen.WelcomeScreenEventCollector; import com.intellij.ui.GotItTooltip; import com.intellij.ui.SimpleTextAttributes; import com.intellij.ui.components.JBScrollPane; @@ -1979,6 +1981,19 @@ public final class PluginManagerConfigurablePanel implements Disposable { return myPluginModelFacade.getModel().isModified(); } + public void scheduleApply() { + ApplicationManager.getApplication().invokeLater(() -> { + try { + apply(); + WelcomeScreenEventCollector.logPluginsModified(); + InstalledPluginsState.getInstance().runShutdownCallback(); + } + catch (ConfigurationException exception) { + Logger.getInstance(PluginsTabFactory.class).error(exception); + } + }, ModalityState.nonModal()); + } + public void apply() throws ConfigurationException { if (myPluginsAutoUpdateEnabled != null) { UpdateOptions state = UpdateSettings.getInstance().getState(); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/PluginsTabFactory.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/PluginsTabFactory.java index 0db6298854aa..c0b5756e4eff 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/PluginsTabFactory.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/PluginsTabFactory.java @@ -86,16 +86,7 @@ public final class PluginsTabFactory implements WelcomeTabFactory { if (!configurable.isModified()) { return; } - ApplicationManager.getApplication().invokeLater(() -> { - try { - configurable.apply(); - WelcomeScreenEventCollector.logPluginsModified(); - InstalledPluginsState.getInstance().runShutdownCallback(); - } - catch (ConfigurationException exception) { - Logger.getInstance(PluginsTabFactory.class).error(exception); - } - }, ModalityState.nonModal()); + configurable.scheduleApply(); } });