diff --git a/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts b/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts index 9b931f7d8c387a2ea8189054f452d4a893855ea6..512f57da762cd9c9c3ef99f4c42789e176aa10e9 100644 --- a/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts +++ b/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts @@ -102,7 +102,6 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti private containers: Builder[]; - private titleContainer: Builder[]; private titleAreaControl: ITitleAreaControl[]; private progressBar: ProgressBar[]; @@ -148,7 +147,6 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti this.containers = []; - this.titleContainer = []; this.titleAreaControl = []; this.progressBar = []; @@ -176,7 +174,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti POSITIONS.forEach(position => { // TItle Container - const titleContainer = this.titleContainer[position]; + const titleContainer = $(this.titleAreaControl[position].getContainer()); if (useTabs) { titleContainer.addClass('tabs'); } else { @@ -191,10 +189,10 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti // Dispose old titleControl.dispose(); - this.titleContainer[position].empty(); + titleContainer.empty(); // Create new - this.createTitleControl(position); + this.createTitleControl(position, titleContainer); } } }); @@ -755,14 +753,14 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti // Title containers const useTabs = !!this.configurationService.getConfiguration().workbench.editor.showTabs; POSITIONS.forEach(position => { - this.titleContainer[position] = $(this.containers[position]).div({ 'class': 'title' }); + const titleContainer = $(this.containers[position]).div({ 'class': 'title' }); if (useTabs) { - this.titleContainer[position].addClass('tabs'); + titleContainer.addClass('tabs'); } - this.hookTitleDragListener(position); + this.hookTitleDragListener(position, titleContainer); // Title Control - this.createTitleControl(position); + this.createTitleControl(position, titleContainer); }); // Progress Bars per position @@ -1018,20 +1016,20 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti }); } - private createTitleControl(position: Position): void { + private createTitleControl(position: Position, container: Builder): void { const useTabs = !!this.configurationService.getConfiguration().workbench.editor.showTabs; this.titleAreaControl[position] = this.instantiationServices[position].createInstance(useTabs ? TabsTitleControl : NoTabsTitleControl); - this.titleAreaControl[position].create(this.titleContainer[position].getHTMLElement()); + this.titleAreaControl[position].create(container.getHTMLElement()); this.titleAreaControl[position].setContext(this.stacks.groupAt(position)); this.titleAreaControl[position].refresh(); } - private hookTitleDragListener(position: Position): void { + private hookTitleDragListener(position: number, container: Builder): void { let wasDragged = false; // Allow to reorder positions by dragging the title - this.titleContainer[position].on(DOM.EventType.MOUSE_DOWN, (e: MouseEvent) => { + container.on(DOM.EventType.MOUSE_DOWN, (e: MouseEvent) => { if (!this.titleAreaControl[position].allowDragging(e.target || e.srcElement)) { return; // return early if we are not in the drag zone of the title widget } diff --git a/src/vs/workbench/browser/parts/editor/titleControl.ts b/src/vs/workbench/browser/parts/editor/titleControl.ts index 6f4da7e6905bdbe93877f09ff13a87bd54ba8f71..b7f4d31e0f10d3ecd6a712a762eb98ecc34ede33 100644 --- a/src/vs/workbench/browser/parts/editor/titleControl.ts +++ b/src/vs/workbench/browser/parts/editor/titleControl.ts @@ -44,6 +44,7 @@ export interface ITitleAreaControl { setContext(group: IEditorGroup): void; allowDragging(element: HTMLElement): boolean; create(parent: HTMLElement): void; + getContainer(): HTMLElement; refresh(instant?: boolean): void; update(instant?: boolean): void; layout(): void;