From 0f4cde307559a2140cbe11989dc0052f13679921 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 1 Jun 2018 12:11:21 +0200 Subject: [PATCH] grid - tweak some groups access order --- .../workbench/browser/parts/editor/editorActions.ts | 13 +++++++++---- .../browser/parts/editor/editorCommands.ts | 2 +- .../workbench/browser/parts/editor/editorPicker.ts | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/editorActions.ts b/src/vs/workbench/browser/parts/editor/editorActions.ts index cffa6892a99..5b97aceda66 100644 --- a/src/vs/workbench/browser/parts/editor/editorActions.ts +++ b/src/vs/workbench/browser/parts/editor/editorActions.ts @@ -161,9 +161,14 @@ export class JoinTwoGroupsAction extends Action { sourceGroup = this.editorGroupService.activeGroup; } - const targetGroup = this.editorGroupService.findGroup({ direction: GroupDirection.RIGHT }, sourceGroup) || this.editorGroupService.findGroup({ direction: GroupDirection.DOWN }, sourceGroup); - if (targetGroup && sourceGroup !== targetGroup) { - this.editorGroupService.mergeGroup(sourceGroup, targetGroup); + const targetGroupDirections = [GroupDirection.RIGHT, GroupDirection.DOWN, GroupDirection.LEFT, GroupDirection.UP]; + for (let i = 0; i < targetGroupDirections.length; i++) { + const targetGroup = this.editorGroupService.findGroup({ direction: targetGroupDirections[i] }, sourceGroup); + if (targetGroup && sourceGroup !== targetGroup) { + this.editorGroupService.mergeGroup(sourceGroup, targetGroup); + + return TPromise.as(true); + } } return TPromise.as(true); @@ -663,7 +668,7 @@ export class CloseEditorsInOtherGroupsAction extends Action { public run(context?: IEditorIdentifier): TPromise { const groupToSkip = context ? this.editorGroupService.getGroup(context.groupId) : this.editorGroupService.activeGroup; - return TPromise.join(this.editorGroupService.groups.map(g => { + return TPromise.join(this.editorGroupService.getGroups(GroupsOrder.MOST_RECENTLY_ACTIVE).map(g => { if (g.id === groupToSkip.id) { return TPromise.as(null); } diff --git a/src/vs/workbench/browser/parts/editor/editorCommands.ts b/src/vs/workbench/browser/parts/editor/editorCommands.ts index f002199999a..ad822f89441 100644 --- a/src/vs/workbench/browser/parts/editor/editorCommands.ts +++ b/src/vs/workbench/browser/parts/editor/editorCommands.ts @@ -207,7 +207,7 @@ function registerEditorGroupsLayoutCommand(): void { export function mergeAllGroups(editorGroupService: IEditorGroupsService): void { const target = editorGroupService.activeGroup; - editorGroupService.groups.forEach(group => { + editorGroupService.getGroups(GroupsOrder.MOST_RECENTLY_ACTIVE).forEach(group => { if (group === target) { return; // keep target } diff --git a/src/vs/workbench/browser/parts/editor/editorPicker.ts b/src/vs/workbench/browser/parts/editor/editorPicker.ts index 13c879b8f6c..a1b7a48374d 100644 --- a/src/vs/workbench/browser/parts/editor/editorPicker.ts +++ b/src/vs/workbench/browser/parts/editor/editorPicker.ts @@ -206,7 +206,7 @@ export class AllEditorsPicker extends BaseEditorPicker { protected getEditorEntries(): EditorPickerEntry[] { const entries: EditorPickerEntry[] = []; - this.editorGroupService.groups.forEach(group => { + this.editorGroupService.getGroups(GroupsOrder.CREATION_TIME).forEach(group => { group.editors.forEach(editor => { entries.push(this.instantiationService.createInstance(EditorPickerEntry, editor, group)); }); -- GitLab