Skip to content

Commit a8c48bb

Browse files
author
Benjamin Pasero
committed
Revert "refs microsoft#94331"
This reverts commit 3e45baa.
1 parent 3e45baa commit a8c48bb

7 files changed

Lines changed: 42 additions & 39 deletions

File tree

src/vs/workbench/browser/composite.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,6 @@ export abstract class CompositeDescriptor<T extends Composite> {
239239
readonly name: string,
240240
readonly cssClass?: string,
241241
readonly order?: number,
242-
readonly requestedIndex?: number,
243242
readonly keybindingId?: string,
244243
) { }
245244

src/vs/workbench/browser/panel.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ export abstract class Panel extends PaneComposite implements IPanel { }
1717
*/
1818
export class PanelDescriptor extends CompositeDescriptor<Panel> {
1919

20-
static create<Services extends BrandedService[]>(ctor: { new(...services: Services): Panel }, id: string, name: string, cssClass?: string, order?: number, requestedIndex?: number, _commandId?: string): PanelDescriptor {
21-
return new PanelDescriptor(ctor as IConstructorSignature0<Panel>, id, name, cssClass, order, requestedIndex, _commandId);
20+
static create<Services extends BrandedService[]>(ctor: { new(...services: Services): Panel }, id: string, name: string, cssClass?: string, order?: number, _commandId?: string): PanelDescriptor {
21+
return new PanelDescriptor(ctor as IConstructorSignature0<Panel>, id, name, cssClass, order, _commandId);
2222
}
2323

24-
private constructor(ctor: IConstructorSignature0<Panel>, id: string, name: string, cssClass?: string, order?: number, requestedIndex?: number, _commandId?: string) {
25-
super(ctor, id, name, cssClass, order, requestedIndex, _commandId);
24+
private constructor(ctor: IConstructorSignature0<Panel>, id: string, name: string, cssClass?: string, order?: number, _commandId?: string) {
25+
super(ctor, id, name, cssClass, order, _commandId);
2626
}
2727
}
2828

src/vs/workbench/browser/parts/compositeBar.ts

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,11 @@ import { IContextMenuService } from 'vs/platform/contextview/browser/contextView
1818
import { Widget } from 'vs/base/browser/ui/widget';
1919
import { isUndefinedOrNull } from 'vs/base/common/types';
2020
import { IColorTheme } from 'vs/platform/theme/common/themeService';
21-
import { Emitter, Event } from 'vs/base/common/event';
21+
import { Emitter } from 'vs/base/common/event';
2222
import { ViewContainerLocation, IViewDescriptorService } from 'vs/workbench/common/views';
2323
import { IPaneComposite } from 'vs/workbench/common/panecomposite';
2424
import { IComposite } from 'vs/workbench/common/composite';
2525
import { CompositeDragAndDropData, CompositeDragAndDropObserver, IDraggedCompositeData, ICompositeDragAndDrop, Before2D } from 'vs/workbench/browser/dnd';
26-
import { generateUuid } from 'vs/base/common/uuid';
2726

2827
export interface ICompositeBarItem {
2928
id: string;
@@ -103,7 +102,7 @@ export class CompositeDragAndDrop implements ICompositeDragAndDrop {
103102

104103
const items = this.getItems();
105104
const before = this.targetContainerLocation === ViewContainerLocation.Panel ? before2d?.horizontallyBefore : before2d?.verticallyBefore;
106-
return items.filter(o => o.visible).findIndex(o => o.id === targetId) + (before ? 0 : 1);
105+
return items.findIndex(o => o.id === targetId) + (before ? 0 : 1);
107106
}
108107

109108
private canDrop(data: CompositeDragAndDropData, targetCompositeId: string | undefined): boolean {
@@ -285,9 +284,9 @@ export class CompositeBar extends Widget implements ICompositeBar {
285284
this.updateCompositeSwitcher();
286285
}
287286

288-
addComposite({ id, name, order, requestedIndex }: { id: string; name: string, order?: number, requestedIndex?: number }): void {
287+
addComposite({ id, name, order }: { id: string; name: string, order?: number }): void {
289288
// Add to the model
290-
if (this.model.add(id, name, order, requestedIndex)) {
289+
if (this.model.add(id, name, order)) {
291290
this.computeSizes([this.model.findItem(id)]);
292291
this.updateCompositeSwitcher();
293292
}
@@ -675,9 +674,17 @@ class CompositeBarModel {
675674
this._items = result;
676675
}
677676

677+
this.updateItemsOrder();
678678
return hasChanges;
679679
}
680680

681+
682+
private updateItemsOrder(): void {
683+
if (this._items) {
684+
this.items.forEach((item, index) => { if (item.order !== undefined) { item.order = index; } });
685+
}
686+
}
687+
681688
get visibleItems(): ICompositeBarModelItem[] {
682689
return this.items.filter(item => item.visible);
683690
}
@@ -700,7 +707,7 @@ class CompositeBarModel {
700707
};
701708
}
702709

703-
add(id: string, name: string, order: number | undefined, requestedIndex: number | undefined): boolean {
710+
add(id: string, name: string, order: number | undefined): boolean {
704711
const item = this.findItem(id);
705712
if (item) {
706713
let changed = false;
@@ -714,20 +721,11 @@ class CompositeBarModel {
714721
changed = true;
715722
}
716723

724+
this.updateItemsOrder();
717725
return changed;
718726
} else {
719727
const item = this.createCompositeBarItem(id, name, order, true, true);
720-
if (!isUndefinedOrNull(requestedIndex)) {
721-
let index = 0;
722-
let rIndex = requestedIndex;
723-
while (rIndex > 0 && index < this.items.length) {
724-
if (this.items[index++].visible) {
725-
rIndex--;
726-
}
727-
}
728-
729-
this.items.splice(index, 0, item);
730-
} else if (isUndefinedOrNull(order)) {
728+
if (isUndefinedOrNull(order)) {
731729
this.items.push(item);
732730
} else {
733731
let index = 0;
@@ -737,6 +735,7 @@ class CompositeBarModel {
737735
this.items.splice(index, 0, item);
738736
}
739737

738+
this.updateItemsOrder();
740739
return true;
741740
}
742741
}
@@ -745,6 +744,7 @@ class CompositeBarModel {
745744
for (let index = 0; index < this.items.length; index++) {
746745
if (this.items[index].id === id) {
747746
this.items.splice(index, 1);
747+
this.updateItemsOrder();
748748
return true;
749749
}
750750
}
@@ -780,6 +780,8 @@ class CompositeBarModel {
780780
// Make sure a moved composite gets pinned
781781
sourceItem.pinned = true;
782782

783+
this.updateItemsOrder();
784+
783785
return true;
784786
}
785787

src/vs/workbench/browser/parts/panel/panelPart.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,7 @@ export class PanelPart extends CompositePart<Panel> implements IPanelService {
220220
const newPanel = {
221221
id: panel.id,
222222
name: panel.name,
223-
order: panel.order,
224-
requestedIndex: panel.requestedIndex
223+
order: cachedPanel?.order === undefined ? panel.order : cachedPanel.order
225224
};
226225

227226
this.compositeBar.addComposite(newPanel);
@@ -677,14 +676,17 @@ export class PanelPart extends CompositePart<Panel> implements IPanelService {
677676
const cachedPanels = this.getCachedPanels();
678677

679678
for (const cachedPanel of cachedPanels) {
680-
// copy behavior from activity bar
681-
newCompositeItems.push({
682-
id: cachedPanel.id,
683-
name: cachedPanel.name,
684-
order: cachedPanel.order,
685-
pinned: cachedPanel.pinned,
686-
visible: !!compositeItems.find(({ id }) => id === cachedPanel.id)
687-
});
679+
// Add and update existing items
680+
const existingItem = compositeItems.filter(({ id }) => id === cachedPanel.id)[0];
681+
if (existingItem) {
682+
newCompositeItems.push({
683+
id: existingItem.id,
684+
name: existingItem.name,
685+
order: existingItem.order,
686+
pinned: cachedPanel.pinned,
687+
visible: existingItem.visible
688+
});
689+
}
688690
}
689691

690692
for (let index = 0; index < compositeItems.length; index++) {

src/vs/workbench/browser/parts/views/viewsService.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,6 @@ export class ViewsService extends Disposable implements IViewsService {
445445
viewContainer.name,
446446
undefined,
447447
viewContainer.order,
448-
viewContainer.requestedIndex,
449448
viewContainer.focusCommand?.id,
450449
));
451450
}

src/vs/workbench/common/views.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,7 @@ export interface IViewContainerDescriptor {
6060

6161
readonly rejectAddedViews?: boolean;
6262

63-
readonly order?: number;
64-
65-
requestedIndex?: number;
63+
order?: number;
6664
}
6765

6866
export interface IViewContainersRegistry {
@@ -517,7 +515,7 @@ export interface IViewDescriptorService {
517515
getViewContainerModel(viewContainer: ViewContainer): IViewContainerModel;
518516

519517
readonly onDidChangeContainerLocation: Event<{ viewContainer: ViewContainer, from: ViewContainerLocation, to: ViewContainerLocation }>;
520-
moveViewContainerToLocation(viewContainer: ViewContainer, location: ViewContainerLocation, requestedIndex?: number): void;
518+
moveViewContainerToLocation(viewContainer: ViewContainer, location: ViewContainerLocation, order?: number): void;
521519

522520
// Views
523521
getViewDescriptorById(id: string): IViewDescriptor | null;

src/vs/workbench/services/views/browser/viewDescriptorService.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
295295
return this.viewContainersRegistry.getDefaultViewContainer(location);
296296
}
297297

298-
moveViewContainerToLocation(viewContainer: ViewContainer, location: ViewContainerLocation, requestedIndex?: number): void {
298+
moveViewContainerToLocation(viewContainer: ViewContainer, location: ViewContainerLocation, order?: number): void {
299299
const from = this.getViewContainerLocation(viewContainer);
300300
const to = location;
301301
if (from !== to) {
@@ -304,7 +304,10 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
304304
const defaultLocation = this.isGeneratedContainerId(viewContainer.id) ? true : this.getViewContainerLocation(viewContainer) === this.getDefaultViewContainerLocation(viewContainer);
305305
this.getOrCreateDefaultViewContainerLocationContextKey(viewContainer).set(defaultLocation);
306306

307-
viewContainer.requestedIndex = requestedIndex;
307+
if (order !== undefined) {
308+
viewContainer.order = order;
309+
}
310+
308311
this._onDidChangeContainerLocation.fire({ viewContainer, from, to });
309312

310313
const views = this.getViewsByContainer(viewContainer);

0 commit comments

Comments
 (0)