diff --git a/src/sql/base/browser/ui/scrollableSplitview/scrollableSplitview.ts b/src/sql/base/browser/ui/scrollableSplitview/scrollableSplitview.ts index 4d398bf43d..1645b76f5f 100644 --- a/src/sql/base/browser/ui/scrollableSplitview/scrollableSplitview.ts +++ b/src/sql/base/browser/ui/scrollableSplitview/scrollableSplitview.ts @@ -140,6 +140,7 @@ export class ScrollableSplitView extends HeightMap implements IDisposable { this.state = State.Busy; for (let i = 0; i < views.length; i++) { + let viewIndex = index + i; let view = views[i], size = sizes[i]; // Add view @@ -165,9 +166,9 @@ export class ScrollableSplitView extends HeightMap implements IDisposable { size = Math.round(size); const item: IViewItem = { view, container, size, layout, disposable, height: size, top: 0, width: 0 }; - this.viewItems.splice(index, 0, item); + this.viewItems.splice(viewIndex, 0, item); - this.onInsertItems(new ArrayIterator([item]), index > 0 ? this.viewItems[index - 1].view.id : undefined); + this.onInsertItems(new ArrayIterator([item]), viewIndex > 0 ? this.viewItems[viewIndex - 1].view.id : undefined); // Add sash if (this.options.enableResizing && this.viewItems.length > 1) { @@ -190,13 +191,13 @@ export class ScrollableSplitView extends HeightMap implements IDisposable { const disposable = combinedDisposable([onStartDisposable, onSashChangeDisposable, onEndDisposable, onDidResetDisposable, sash]); const sashItem: ISashItem = { sash, disposable }; - this.sashItems.splice(index - 1, 0, sashItem); + this.sashItems.splice(viewIndex - 1, 0, sashItem); } view.render(container, this.orientation); } - this.relayout(index); + this.relayout(); this.state = State.Idle; } diff --git a/src/sql/parts/query/editor/gridPanel.ts b/src/sql/parts/query/editor/gridPanel.ts index 5ee19cfb54..0bad655f63 100644 --- a/src/sql/parts/query/editor/gridPanel.ts +++ b/src/sql/parts/query/editor/gridPanel.ts @@ -158,6 +158,8 @@ export class GridPanel extends ViewletPanel { tables.push(table); } + // possible to need a sort? + if (isUndefinedOrNull(this.maximizedGrid)) { this.splitView.addViews(tables, tables.map(i => i.minimumSize), this.splitView.length); } @@ -207,6 +209,8 @@ export class GridPanel extends ViewletPanel { class GridTable extends Disposable implements IView { private static BOTTOMPADDING = 5; private static ACTIONBAR_WIDTH = 26; + // this is the min height for grids + private static MIN_GRID_HEIGHT = (minGridHeightInRows * rowHeight) + columnHeight + estimatedScrollBarHeight + GridTable.BOTTOMPADDING; private table: Table; private actionBar: ActionBar; private container = document.createElement('div'); @@ -322,9 +326,9 @@ class GridTable extends Disposable implements IView { } public get minimumSize(): number { + // this handles if the row count is small, like 4-5 rows let smallestRows = ((this.resultSet.rowCount) * rowHeight) + columnHeight + estimatedScrollBarHeight + GridTable.BOTTOMPADDING; - let smallestSize = (minGridHeightInRows * rowHeight) + columnHeight + estimatedScrollBarHeight + GridTable.BOTTOMPADDING; - return Math.min(smallestRows, smallestSize); + return Math.min(smallestRows, GridTable.MIN_GRID_HEIGHT); } public get maximumSize(): number {