diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsDataKeys.java b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsDataKeys.java index eff582913847..4cd05118c567 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsDataKeys.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsDataKeys.java @@ -14,6 +14,7 @@ import com.intellij.openapi.vcs.history.VcsRevisionNumber; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.Consumer; import com.intellij.vcs.commit.CommitWorkflowHandler; +import com.intellij.vcs.commit.CommitWorkflowUi; import org.jetbrains.annotations.ApiStatus; import java.io.File; @@ -91,6 +92,7 @@ public interface VcsDataKeys { DataKey COMMIT_MESSAGE_CONTROL = DataKey.create("COMMIT_MESSAGE_CONTROL"); DataKey COMMIT_MESSAGE_DOCUMENT = DataKey.create("COMMIT_MESSAGE_DOCUMENT"); DataKey COMMIT_WORKFLOW_HANDLER = DataKey.create("Vcs.CommitWorkflowHandler"); + DataKey COMMIT_WORKFLOW_UI = DataKey.create("Vcs.CommitWorkflowUI"); DataKey HISTORY_SESSION = DataKey.create("VCS_HISTORY_SESSION"); /** diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java index 842113b46efe..30311207217c 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java @@ -19,10 +19,7 @@ import com.intellij.openapi.ui.*; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.NlsContexts; import com.intellij.openapi.util.registry.Registry; -import com.intellij.openapi.vcs.AbstractVcs; -import com.intellij.openapi.vcs.FilePath; -import com.intellij.openapi.vcs.VcsActions; -import com.intellij.openapi.vcs.VcsException; +import com.intellij.openapi.vcs.*; import com.intellij.openapi.vcs.changes.*; import com.intellij.openapi.vcs.changes.actions.diff.lst.LocalChangeListDiffTool; import com.intellij.openapi.vcs.checkin.BaseCheckinHandlerFactory; @@ -688,6 +685,9 @@ public abstract class CommitChangeListDialog extends DialogWrapper implements Si @Nullable @Override public Object getData(@NotNull String dataId) { + if (VcsDataKeys.COMMIT_WORKFLOW_UI.is(dataId)) { + return this; + } return StreamEx.of(myDataProviders) .map(provider -> provider.getData(dataId)) .nonNull() diff --git a/platform/vcs-impl/src/com/intellij/vcs/commit/NonModalCommitPanel.kt b/platform/vcs-impl/src/com/intellij/vcs/commit/NonModalCommitPanel.kt index 492ca0b77ec5..7b364c337cb7 100644 --- a/platform/vcs-impl/src/com/intellij/vcs/commit/NonModalCommitPanel.kt +++ b/platform/vcs-impl/src/com/intellij/vcs/commit/NonModalCommitPanel.kt @@ -1,7 +1,6 @@ // Copyright 2000-2023 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.ide.IdeEventQueue import com.intellij.openapi.Disposable import com.intellij.openapi.actionSystem.ActionGroup import com.intellij.openapi.actionSystem.ActionManager @@ -17,6 +16,7 @@ import com.intellij.openapi.ui.popup.JBPopupFactory import com.intellij.openapi.ui.popup.JBPopupListener import com.intellij.openapi.ui.popup.LightweightWindowEvent import com.intellij.openapi.vcs.VcsBundle.message +import com.intellij.openapi.vcs.VcsDataKeys import com.intellij.openapi.vcs.actions.ShowCommitOptionsAction import com.intellij.openapi.vcs.changes.InclusionListener import com.intellij.openapi.vcs.ui.CommitMessage @@ -35,11 +35,9 @@ import com.intellij.util.ui.components.BorderLayoutPanel import org.jetbrains.annotations.Nls import java.awt.Color import java.awt.Point -import java.awt.event.MouseEvent import javax.swing.JComponent import javax.swing.JPanel import javax.swing.LayoutFocusTraversalPolicy -import javax.swing.SwingUtilities import javax.swing.border.Border import javax.swing.border.EmptyBorder @@ -104,7 +102,13 @@ abstract class NonModalCommitPanel( override fun getComponent(): JComponent = this override fun getPreferredFocusableComponent(): JComponent = commitMessage.editorField - override fun getData(dataId: String) = getDataFromProviders(dataId) ?: commitMessage.getData(dataId) + override fun getData(dataId: String): Any? { + if (VcsDataKeys.COMMIT_WORKFLOW_UI.`is`(dataId)) { + return this + } + return getDataFromProviders(dataId) ?: commitMessage.getData(dataId) + } + fun getDataFromProviders(dataId: String): Any? { for (dataProvider in dataProviders) { return dataProvider.getData(dataId) ?: continue