diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTab.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTab.java index 5bf9a57dda32..92e8ec61d693 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTab.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTab.java @@ -336,6 +336,7 @@ class InstalledPluginsTab extends PluginsTab { installedController, panel, myInstalledSearchGroup, + () -> myInstalledPanel, selectionListener, mySearchInMarketplaceTabHandler, myPluginModelFacade @@ -603,16 +604,19 @@ class InstalledPluginsTab extends PluginsTab { private final @Nullable Consumer mySearchInMarketplaceTabHandler; private final @NotNull PluginModelFacade myPluginModelFacade; private final @NotNull DefaultActionGroup mySearchActionGroup; + private final @NotNull Supplier myInstalledPanelSupplier; - InstalledTabSearchResultPanel(CoroutineScope coroutineScope, + InstalledTabSearchResultPanel(@NotNull CoroutineScope coroutineScope, SearchUpDownPopupController installedController, PluginsGroupComponentWithProgress panel, @NotNull DefaultActionGroup searchActionGroup, + @NotNull Supplier installedPanelSupplier, @NotNull Consumer selectionListener, @Nullable Consumer searchInMarketplaceTabHandler, @NotNull PluginModelFacade pluginModelFacade) { super(coroutineScope, installedController, panel, false); mySearchActionGroup = searchActionGroup; + myInstalledPanelSupplier = installedPanelSupplier; mySelectionListener = selectionListener; mySearchInMarketplaceTabHandler = searchInMarketplaceTabHandler; myPluginModelFacade = pluginModelFacade; @@ -752,12 +756,12 @@ class InstalledPluginsTab extends PluginsTab { } }); } - PluginModelAsyncOperationsExecutor.INSTANCE.loadUpdates(myCoroutineScope, updates -> { + PluginModelAsyncOperationsExecutor.INSTANCE.loadUpdates(getCoroutineScope(), updates -> { if (!ContainerUtil.isEmpty(updates)) { myPostFillGroupCallback = () -> { //noinspection unchecked applyUpdates(myPanel, (Collection)updates); - mySelectionListener.accept(myInstalledPanel); + mySelectionListener.accept(myInstalledPanelSupplier.get()); mySelectionListener.accept(getPanel()); }; } diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/SearchResultPanel.kt b/platform/platform-impl/src/com/intellij/ide/plugins/newui/SearchResultPanel.kt index 96fef306cf35..2336c975dd7a 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/SearchResultPanel.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/SearchResultPanel.kt @@ -24,7 +24,7 @@ import javax.swing.ScrollPaneConstants @ApiStatus.Internal abstract class SearchResultPanel( - private val coroutineScope: CoroutineScope, + protected val coroutineScope: CoroutineScope, @JvmField val controller: SearchPopupController, @JvmField protected val myPanel: PluginsGroupComponentWithProgress, private val isMarketplace: Boolean,