From b8e7046b252d51682b068bd6ee2b11c2ba4fadf7 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 17 Feb 2016 11:00:07 +0100 Subject: Fixes #2829: Update window dirty state asynchronously --- .../files/electron-browser/electronFileTracker.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/vs/workbench/parts/files/electron-browser/electronFileTracker.ts b/src/vs/workbench/parts/files/electron-browser/electronFileTracker.ts index 3c11c78ba19..4fb13d75fb4 100644 --- a/src/vs/workbench/parts/files/electron-browser/electronFileTracker.ts +++ b/src/vs/workbench/parts/files/electron-browser/electronFileTracker.ts @@ -184,14 +184,16 @@ export class FileTracker implements IWorkbenchContribution { private updateDocumentEdited(): void { if (plat.platform === plat.Platform.Mac) { - let win = remote.getCurrentWindow(); - let isDirtyIndicated = win.isDocumentEdited(); - let hasDirtyFiles = this.textFileService.isDirty(); - this.isDocumentedEdited = hasDirtyFiles; - - if (hasDirtyFiles !== isDirtyIndicated) { - win.setDocumentEdited(hasDirtyFiles); - } + process.nextTick(() => { + let win = remote.getCurrentWindow(); + let isDirtyIndicated = win.isDocumentEdited(); + let hasDirtyFiles = this.textFileService.isDirty(); + this.isDocumentedEdited = hasDirtyFiles; + + if (hasDirtyFiles !== isDirtyIndicated) { + win.setDocumentEdited(hasDirtyFiles); + } + }); } } -- cgit v1.2.3