Git - fix commitInProgress context key (#162562)

Fix #154628
This commit is contained in:
Ladislau Szomoru
2022-10-03 15:02:24 +02:00
committed by GitHub
parent 3551b7ec49
commit d904014287
2 changed files with 20 additions and 5 deletions

View File

@@ -5,7 +5,7 @@
import { workspace, WorkspaceFoldersChangeEvent, Uri, window, Event, EventEmitter, QuickPickItem, Disposable, SourceControl, SourceControlResourceGroup, TextEditor, Memento, commands } from 'vscode';
import TelemetryReporter from '@vscode/extension-telemetry';
import { Repository, RepositoryState } from './repository';
import { Operation, Repository, RepositoryState } from './repository';
import { memoize, sequentialize, debounce } from './decorators';
import { dispose, anyEvent, filterEvent, isDescendant, pathEquals, toDisposable, eventToPromise } from './util';
import { Git } from './git';
@@ -467,11 +467,28 @@ export class Model implements IRemoteSourcePublisherRegistry, IPostCommitCommand
});
checkForSubmodules();
const updateCommitInProgressContext = () => {
let commitInProgress = false;
for (const { repository } of this.openRepositories.values()) {
if (repository.operations.isRunning(Operation.Commit)) {
commitInProgress = true;
break;
}
}
commands.executeCommand('setContext', 'commitInProgress', commitInProgress);
};
const operationEvent = anyEvent(repository.onDidRunOperation as Event<any>, repository.onRunOperation as Event<any>);
const operationListener = operationEvent(() => updateCommitInProgressContext());
updateCommitInProgressContext();
const dispose = () => {
disappearListener.dispose();
changeListener.dispose();
originalResourceChangeListener.dispose();
statusListener.dispose();
operationListener.dispose();
repository.dispose();
this.openRepositories = this.openRepositories.filter(e => e !== openRepository);

View File

@@ -460,10 +460,8 @@ class ProgressManager {
this.updateEnablement();
this.repository.onDidChangeOperations(() => {
const commitInProgress = this.repository.operations.isRunning(Operation.Commit);
this.repository.sourceControl.inputBox.enabled = !commitInProgress;
commands.executeCommand('setContext', 'commitInProgress', commitInProgress);
// Disable input box when the commit operation is running
this.repository.sourceControl.inputBox.enabled = !this.repository.operations.isRunning(Operation.Commit);
});
}