diff --git a/platform/vcs-impl/resources/META-INF/VcsExtensions.xml b/platform/vcs-impl/resources/META-INF/VcsExtensions.xml index 2e6ae37844f7..7c457a391414 100644 --- a/platform/vcs-impl/resources/META-INF/VcsExtensions.xml +++ b/platform/vcs-impl/resources/META-INF/VcsExtensions.xml @@ -419,8 +419,6 @@ topic="com.intellij.openapi.vcs.changes.shelf.ShelveChangesManagerListener"/> - diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewManager.kt b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewManager.kt index f4874bc3bcfc..eddd55309198 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewManager.kt +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangesViewManager.kt @@ -28,12 +28,14 @@ import com.intellij.ui.components.JBLabel import com.intellij.ui.components.panels.Wrapper import com.intellij.ui.content.Content import com.intellij.util.ModalityUiUtil.invokeLaterIfNeeded +import com.intellij.util.cancelOnDispose import com.intellij.util.concurrency.annotations.RequiresEdt import com.intellij.util.ui.JBDimension import com.intellij.util.ui.JBUI import com.intellij.util.ui.JBUI.Panels import com.intellij.util.ui.UIUtil import com.intellij.util.ui.components.BorderLayoutPanel +import com.intellij.util.ui.launchOnShow import com.intellij.vcs.changes.viewModel.ChangesViewProxy import com.intellij.vcs.commit.* import com.intellij.vcs.commit.CommitModeManager.Companion.subscribeOnCommitModeChange @@ -212,6 +214,10 @@ class ChangesViewManager internal constructor(private val project: Project, priv val mainPanel = Panels.simplePanel(mainPanelContent).addToBottom(progressLabel) setContent(mainPanel) + mainPanel.launchOnShow("Changes refresh on changes show") { + ChangeListManagerRefreshHelper.requestRefresh(project) + }.cancelOnDispose(this) + busConnection.subscribeOnVcsToolWindowLayoutChanges(Runnable { this.updatePanelLayout() }) updatePanelLayout() } diff --git a/platform/vcs-impl/src/com/intellij/vcs/commit/ChangesViewToolWindowRefresher.kt b/platform/vcs-impl/src/com/intellij/vcs/commit/ChangesViewToolWindowRefresher.kt deleted file mode 100644 index b8be21f3ad2d..000000000000 --- a/platform/vcs-impl/src/com/intellij/vcs/commit/ChangesViewToolWindowRefresher.kt +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.vcs.commit - -import com.intellij.openapi.project.Project -import com.intellij.openapi.vcs.changes.ChangeListManagerRefreshHelper -import com.intellij.openapi.vcs.changes.ui.ChangesViewContentManager -import com.intellij.openapi.vcs.changes.ui.ChangesViewContentManager.Companion.LOCAL_CHANGES -import com.intellij.openapi.wm.ToolWindow -import com.intellij.openapi.wm.ex.ToolWindowManagerListener - -private class ChangesViewToolWindowRefresher(private val project: Project) : ToolWindowManagerListener { - override fun toolWindowShown(toolWindow: ToolWindow) { - if (ChangesViewContentManager.getToolWindowIdFor(project, LOCAL_CHANGES) == toolWindow.id) { - ChangeListManagerRefreshHelper.requestRefresh(project) - } - } -} \ No newline at end of file diff --git a/plugins/git4idea/src/git4idea/index/ui/GitStagePanel.kt b/plugins/git4idea/src/git4idea/index/ui/GitStagePanel.kt index d0ea409fa6d9..1e590a61e800 100644 --- a/plugins/git4idea/src/git4idea/index/ui/GitStagePanel.kt +++ b/plugins/git4idea/src/git4idea/index/ui/GitStagePanel.kt @@ -173,6 +173,10 @@ internal class GitStagePanel( }) commitWorkflowHandler.workflow.addListener(MyCommitWorkflowListener(), this) + launchOnShow("Changes refresh on changes show") { + ChangeListManagerRefreshHelper.requestRefresh(project) + }.cancelOnDispose(this) + if (isRefreshInProgress()) { tree.setEmptyText(message("stage.loading.status")) progressStripe.startLoadingImmediately()