diff --git a/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts b/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts index b5123eca628..6fd7f7159ca 100644 --- a/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts +++ b/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts @@ -570,6 +570,10 @@ export class SCMViewlet extends PersistentViewsViewlet { return this.instantiationService.createInstance(viewDescriptor.ctor, initialSize, options); } + protected getDefaultViewSize(): number | undefined { + return this.dimension && this.dimension.height / this.views.length; + } + getOptimalWidth(): number { return 400; } diff --git a/src/vs/workbench/parts/views/browser/views.ts b/src/vs/workbench/parts/views/browser/views.ts index eb75ebaefd1..42aec84fc9c 100644 --- a/src/vs/workbench/parts/views/browser/views.ts +++ b/src/vs/workbench/parts/views/browser/views.ts @@ -324,7 +324,7 @@ export class ViewsViewlet extends Viewlet { private splitView: SplitView; private viewHeaderContextMenuListeners: IDisposable[] = []; - private dimension: Dimension; + protected dimension: Dimension; private viewletSettings: object; private readonly viewsContextKeys: Set = new Set(); @@ -553,7 +553,7 @@ export class ViewsViewlet extends Viewlet { let viewState = this.viewsStates.get(viewDescriptor.id); let index = visible.indexOf(viewDescriptor); const view = this.createView(viewDescriptor, - viewState ? viewState.size : void 0, + viewState ? viewState.size : this.getDefaultViewSize(), { id: viewDescriptor.id, name: viewDescriptor.name, @@ -575,6 +575,10 @@ export class ViewsViewlet extends Viewlet { return TPromise.as([]); } + protected getDefaultViewSize(): number | undefined { + return undefined; + } + private attachViewStyler(widget: IThemable, options?: { noContrastBorder?: boolean }): IDisposable { return attachStyler(this.themeService, { headerForeground: SIDE_BAR_SECTION_HEADER_FOREGROUND,