提交 7b81b55c 编写于 作者: B Benjamin Pasero

distinguish between forceNewWindow and preferNewWindow

上级 dd7709ec
......@@ -37,7 +37,7 @@ export class LaunchService {
} else if (args.pathArguments.length === 0) {
windows.manager.focusLastActive(args);
} else {
let usedWindows = windows.manager.open({ cli: args, userEnv: userEnv, forceNewWindow: args.waitForWindowClose || !args.openInSameWindow });
let usedWindows = windows.manager.open({ cli: args, userEnv: userEnv, forceNewWindow: args.waitForWindowClose, preferNewWindow: !args.openInSameWindow });
// If the other instance is waiting to be killed, we hook up a window listener if one window
// is being used and kill the other instance when that window is being closed
......@@ -189,7 +189,7 @@ function main(ipcServer: Server, userEnv: env.IProcessEnvironment): void {
} else if (global.macOpenFiles && global.macOpenFiles.length && (!env.cliArgs.pathArguments || !env.cliArgs.pathArguments.length)) {
windows.manager.open({ cli: env.cliArgs, pathsToOpen: global.macOpenFiles }); // mac: open-file event received on startup
} else {
windows.manager.open({ cli: env.cliArgs, forceNewWindow: env.cliArgs.openNewWindow }); // default: read paths from cli
windows.manager.open({ cli: env.cliArgs, preferNewWindow: env.cliArgs.openNewWindow }); // default: read paths from cli
}
}
......
......@@ -59,6 +59,7 @@ export interface IOpenConfiguration {
cli: env.ICommandLineArguments;
userEnv?: env.IProcessEnvironment;
pathsToOpen?: string[];
preferNewWindow?: boolean;
forceNewWindow?: boolean;
forceEmpty?: boolean;
windowToUse?: window.VSCodeWindow;
......@@ -137,7 +138,7 @@ export class WindowsManager {
// Handle paths delayed in case more are coming!
runningTimeout = setTimeout(() => {
this.open({ cli: env.cliArgs, pathsToOpen: macOpenFiles, forceNewWindow: true /* dropping on the dock should force open in a new window */ });
this.open({ cli: env.cliArgs, pathsToOpen: macOpenFiles, preferNewWindow: true /* dropping on the dock prefers to open in a new window */ });
macOpenFiles = [];
runningTimeout = null;
}, 100);
......@@ -498,10 +499,15 @@ export class WindowsManager {
// Handle files to open/diff or to create when we dont open a folder
if (!foldersToOpen.length && (filesToOpen.length > 0 || filesToCreate.length > 0 || filesToDiff.length > 0 || extensionsToInstall.length > 0)) {
// Let the user settings override how files are open in a new window or same window
let openFilesInNewWindow = openConfig.forceNewWindow;
if (openFilesInNewWindow && !openConfig.cli.extensionDevelopmentPath) { // can be overriden via settings (not for PDE though!)
openFilesInNewWindow = settings.manager.getValue('window.openFilesInNewWindow', openFilesInNewWindow);
// Let the user settings override how files are open in a new window or same window unless we are forced
let openFilesInNewWindow: boolean;
if (openConfig.forceNewWindow) {
openFilesInNewWindow = true;
} else {
openFilesInNewWindow = openConfig.preferNewWindow;
if (openFilesInNewWindow && !openConfig.cli.extensionDevelopmentPath) { // can be overriden via settings (not for PDE though!)
openFilesInNewWindow = settings.manager.getValue('window.openFilesInNewWindow', openFilesInNewWindow);
}
}
// Open Files in last instance if any and flag tells us so
......
......@@ -39,7 +39,7 @@ class OpenSnippetsAction extends actions.Action {
}
private openFile(filePath: string): void {
ipc.send('vscode:windowOpen', [filePath], false /* force new window */); // handled from browser process
ipc.send('vscode:windowOpen', [filePath]); // handled from browser process
}
public run(): winjs.Promise {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册