diff --git a/src/vs/workbench/api/browser/mainThreadDocuments.ts b/src/vs/workbench/api/browser/mainThreadDocuments.ts index 8b624063795..7be61f10e10 100644 --- a/src/vs/workbench/api/browser/mainThreadDocuments.ts +++ b/src/vs/workbench/api/browser/mainThreadDocuments.ts @@ -109,14 +109,9 @@ export class MainThreadDocuments implements MainThreadDocumentsShape { this._proxy.$acceptModelSaved(e.model.resource); } })); - this._toDispose.add(textFileService.models.onDidRevert(m => { - if (this._shouldHandleFileEvent(m.resource)) { - this._proxy.$acceptDirtyStateChanged(m.resource, false); - } - })); this._toDispose.add(textFileService.models.onDidChangeDirty(m => { if (this._shouldHandleFileEvent(m.resource)) { - this._proxy.$acceptDirtyStateChanged(m.resource, true); + this._proxy.$acceptDirtyStateChanged(m.resource, m.isDirty()); } })); diff --git a/src/vs/workbench/services/textfile/test/textFileEditorModelManager.test.ts b/src/vs/workbench/services/textfile/test/textFileEditorModelManager.test.ts index 3eab2ccf1aa..8a27ddcad42 100644 --- a/src/vs/workbench/services/textfile/test/textFileEditorModelManager.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileEditorModelManager.test.ts @@ -134,7 +134,8 @@ suite('Files - TextFileEditorModelManager', () => { const resource2 = toResource.call(this, '/path/other.txt'); let loadedCounter = 0; - let dirtyCounter = 0; + let gotDirtyCounter = 0; + let gotNonDirtyCounter = 0; let revertedCounter = 0; let savedCounter = 0; let encodingCounter = 0; @@ -147,7 +148,11 @@ suite('Files - TextFileEditorModelManager', () => { manager.onDidChangeDirty(model => { if (model.resource.toString() === resource1.toString()) { - dirtyCounter++; + if (model.isDirty()) { + gotDirtyCounter++; + } else { + gotNonDirtyCounter++; + } } }); @@ -189,7 +194,8 @@ suite('Files - TextFileEditorModelManager', () => { model2.dispose(); await model1.revert(); - assert.equal(dirtyCounter, 4); + assert.equal(gotDirtyCounter, 2); + assert.equal(gotNonDirtyCounter, 2); assert.equal(revertedCounter, 1); assert.equal(savedCounter, 1); assert.equal(encodingCounter, 2);