提交 2a7f5b42 编写于 作者: B Benjamin Pasero

💄

上级 6f253951
......@@ -82,14 +82,17 @@ export interface IResourceInput extends IBaseResourceInput {
export interface IEditorOptions {
/**
* Tells the editor to not receive keyboard focus when the editor is being opened. By default,
* the editor will receive keyboard focus on open.
* Tells the editor to not receive keyboard focus when the editor is being opened. This
* will also prevent the group the editor opens in to become active. This can be overridden
* via the `forceActive` option.
*
* By default, the editor will receive keyboard focus on open.
*/
readonly preserveFocus?: boolean;
/**
* Tells the group the editor opens in to become active. By default, an editor group will not
* become active if either `preserveFocus: true` or `inactive: true`.
* Tells the group the editor opens in to become active even if either `preserveFocus: true`
* or `inactive: true` are specified.
*/
readonly forceActive?: boolean;
......@@ -129,7 +132,8 @@ export interface IEditorOptions {
/**
* An active editor that is opened will show its contents directly. Set to true to open an editor
* in the background.
* in the background. This will also prevent the group the editor opens in to become active. This
* can be overridden via the `forceActive` option.
*/
readonly inactive?: boolean;
......
......@@ -713,14 +713,17 @@ export class EditorOptions implements IEditorOptions {
}
/**
* Tells the editor to not receive keyboard focus when the editor is being opened. By default,
* the editor will receive keyboard focus on open.
* Tells the editor to not receive keyboard focus when the editor is being opened. This
* will also prevent the group the editor opens in to become active. This can be overridden
* via the `forceActive` option.
*
* By default, the editor will receive keyboard focus on open.
*/
preserveFocus: boolean | undefined;
/**
* Tells the group the editor opens in to become active. By default, an editor group will not
* become active if either `preserveFocus: true` or `inactive: true`.
* Tells the group the editor opens in to become active even if either `preserveFocus: true`
* or `inactive: true` are specified.
*/
forceActive: boolean | undefined;
......@@ -754,7 +757,8 @@ export class EditorOptions implements IEditorOptions {
/**
* An active editor that is opened will show its contents directly. Set to true to open an editor
* in the background.
* in the background. This will also prevent the group the editor opens in to become active. This
* can be overridden via the `forceActive` option.
*/
inactive: boolean | undefined;
......
......@@ -256,7 +256,12 @@ export class EditorService extends Disposable implements EditorServiceImpl {
// Not enforcing this for side groups supports a historic scenario we have: repeated
// Alt-clicking of files in the explorer always open into the same side group and not
// cause a group to be created each time.
if (typedOptions && !typedOptions.inactive && typedOptions.preserveFocus && candidateGroup !== SIDE_GROUP) {
if (
typedOptions && !typedOptions.inactive && // never for inactive editors
typedOptions.preserveFocus && // only if preserveFocus
typeof typedOptions.forceActive !== 'boolean' && // only if forceActive is not already defined (either true or false)
candidateGroup !== SIDE_GROUP // never for the SIDE_GROUP
) {
typedOptions.overwrite({ forceActive: true });
}
......@@ -275,11 +280,11 @@ export class EditorService extends Disposable implements EditorServiceImpl {
// Group: Instance of Group
if (group && typeof group !== 'number') {
return group;
targetGroup = group;
}
// Group: Side by Side
if (group === SIDE_GROUP) {
else if (group === SIDE_GROUP) {
targetGroup = this.findSideBySideGroup();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册