From c2514ed19e24c74b371a5b3525b744e8ad457545 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Thu, 3 Nov 2016 16:48:14 +0100 Subject: [PATCH] ipc: remove vscode:setDocumentEdited #10587 --- src/vs/code/electron-main/windows.ts | 9 --------- src/vs/platform/windows/common/windows.ts | 2 ++ src/vs/platform/windows/common/windowsIpc.ts | 6 ++++++ .../platform/windows/electron-browser/windowService.ts | 4 ++++ .../platform/windows/electron-main/windowsService.ts | 10 ++++++++++ .../parts/files/electron-browser/dirtyFilesTracker.ts | 8 +++----- 6 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index a54ba4f0fd6..a36a64ce6ce 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -231,15 +231,6 @@ export class WindowsManager implements IWindowsMainService, IWindowEventService } }); - ipc.on('vscode:setDocumentEdited', (event, windowId: number, edited: boolean) => { - this.logService.log('IPC#vscode:setDocumentEdited'); - - const vscodeWindow = this.getWindowById(windowId); - if (vscodeWindow && vscodeWindow.win.isDocumentEdited() !== edited) { - vscodeWindow.win.setDocumentEdited(edited); - } - }); - ipc.on('vscode:toggleMenuBar', (event, windowId: number) => { this.logService.log('IPC#vscode:toggleMenuBar'); diff --git a/src/vs/platform/windows/common/windows.ts b/src/vs/platform/windows/common/windows.ts index 88cbfc22cff..aca4e1fbc87 100644 --- a/src/vs/platform/windows/common/windows.ts +++ b/src/vs/platform/windows/common/windows.ts @@ -26,6 +26,7 @@ export interface IWindowsService { setRepresentedFilename(windowId: number, fileName: string): TPromise; getRecentlyOpen(windowId: number): TPromise<{ files: string[]; folders: string[]; }>; focusWindow(windowId: number): TPromise; + setDocumentEdited(windowId: number, flag: boolean): TPromise; // Global methods // TODO@joao: rename, shouldn't this be openWindow? @@ -53,4 +54,5 @@ export interface IWindowService { setRepresentedFilename(fileName: string): TPromise; getRecentlyOpen(): TPromise<{ files: string[]; folders: string[]; }>; focusWindow(): TPromise; + setDocumentEdited(flag: boolean): TPromise; } \ No newline at end of file diff --git a/src/vs/platform/windows/common/windowsIpc.ts b/src/vs/platform/windows/common/windowsIpc.ts index 672b7a03b71..ade4318d7da 100644 --- a/src/vs/platform/windows/common/windowsIpc.ts +++ b/src/vs/platform/windows/common/windowsIpc.ts @@ -20,6 +20,7 @@ export interface IWindowsChannel extends IChannel { call(command: 'setRepresentedFilename', arg: [number, string]): TPromise; call(command: 'getRecentlyOpen', arg: number): TPromise<{ files: string[]; folders: string[]; }>; call(command: 'focusWindow', arg: number): TPromise; + call(command: 'setDocumentEdited', args: [number, boolean]): TPromise; call(command: 'windowOpen', arg: [string[], boolean]): TPromise; call(command: 'openNewWindow'): TPromise; call(command: 'showWindow', arg: number): TPromise; @@ -44,6 +45,7 @@ export class WindowsChannel implements IWindowsChannel { case 'setRepresentedFilename': return this.service.setRepresentedFilename(arg[0], arg[1]); case 'getRecentlyOpen': return this.service.getRecentlyOpen(arg); case 'focusWindow': return this.service.focusWindow(arg); + case 'setDocumentEdited': return this.service.setDocumentEdited(arg[0], arg[1]); case 'windowOpen': return this.service.windowOpen(arg[0], arg[1]); case 'openNewWindow': return this.service.openNewWindow(); case 'showWindow': return this.service.showWindow(arg); @@ -102,6 +104,10 @@ export class WindowsChannelClient implements IWindowsService { return this.channel.call('focusWindow', windowId); } + setDocumentEdited(windowId: number, flag: boolean): TPromise { + return this.channel.call('setDocumentEdited', [windowId, flag]); + } + windowOpen(paths: string[], forceNewWindow?: boolean): TPromise { return this.channel.call('windowOpen', [paths, forceNewWindow]); } diff --git a/src/vs/platform/windows/electron-browser/windowService.ts b/src/vs/platform/windows/electron-browser/windowService.ts index 9f59fc114c8..8fba69f21b4 100644 --- a/src/vs/platform/windows/electron-browser/windowService.ts +++ b/src/vs/platform/windows/electron-browser/windowService.ts @@ -64,4 +64,8 @@ export class WindowService implements IWindowService { focusWindow(): TPromise { return this.windowsService.focusWindow(this.windowId); } + + setDocumentEdited(flag: boolean): TPromise { + return this.windowsService.setDocumentEdited(this.windowId, flag); + } } \ No newline at end of file diff --git a/src/vs/platform/windows/electron-main/windowsService.ts b/src/vs/platform/windows/electron-main/windowsService.ts index 93711370394..4acb17c3396 100644 --- a/src/vs/platform/windows/electron-main/windowsService.ts +++ b/src/vs/platform/windows/electron-main/windowsService.ts @@ -117,6 +117,16 @@ export class WindowsService implements IWindowsService { return TPromise.as(null); } + setDocumentEdited(windowId: number, flag: boolean): TPromise { + const vscodeWindow = this.windowsMainService.getWindowById(windowId); + + if (vscodeWindow && vscodeWindow.win.isDocumentEdited() !== flag) { + vscodeWindow.win.setDocumentEdited(flag); + } + + return TPromise.as(null); + } + windowOpen(paths: string[], forceNewWindow?: boolean): TPromise { if (!paths || !paths.length) { return TPromise.as(null); diff --git a/src/vs/workbench/parts/files/electron-browser/dirtyFilesTracker.ts b/src/vs/workbench/parts/files/electron-browser/dirtyFilesTracker.ts index 88443df9bde..8b17bef1205 100644 --- a/src/vs/workbench/parts/files/electron-browser/dirtyFilesTracker.ts +++ b/src/vs/workbench/parts/files/electron-browser/dirtyFilesTracker.ts @@ -11,8 +11,8 @@ import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { VIEWLET_ID } from 'vs/workbench/parts/files/common/files'; import { TextFileModelChangeEvent, ITextFileService, AutoSaveMode } from 'vs/workbench/services/textfile/common/textfiles'; import { platform, Platform } from 'vs/base/common/platform'; -import { IWindowIPCService } from 'vs/workbench/services/window/electron-browser/windowService'; import { Position } from 'vs/platform/editor/common/editor'; +import { IWindowService } from 'vs/platform/windows/common/windows'; import { IEditorStacksModel } from 'vs/workbench/common/editor'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle'; @@ -23,8 +23,6 @@ import { IActivityService, NumberBadge } from 'vs/workbench/services/activity/co import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService'; import arrays = require('vs/base/common/arrays'); -import { ipcRenderer as ipc } from 'electron'; - export class DirtyFilesTracker implements IWorkbenchContribution { private isDocumentedEdited: boolean; private toUnbind: IDisposable[]; @@ -41,7 +39,7 @@ export class DirtyFilesTracker implements IWorkbenchContribution { @IEditorGroupService editorGroupService: IEditorGroupService, @IWorkbenchEditorService private editorService: IWorkbenchEditorService, @IActivityService private activityService: IActivityService, - @IWindowIPCService private windowService: IWindowIPCService, + @IWindowService private windowService: IWindowService, @IUntitledEditorService private untitledEditorService: IUntitledEditorService ) { this.toUnbind = []; @@ -161,7 +159,7 @@ export class DirtyFilesTracker implements IWorkbenchContribution { const hasDirtyFiles = this.textFileService.isDirty(); this.isDocumentedEdited = hasDirtyFiles; - ipc.send('vscode:setDocumentEdited', this.windowService.getWindowId(), hasDirtyFiles); // handled from browser process + this.windowService.setDocumentEdited(hasDirtyFiles); } } -- GitLab