Skip to content

Commit c080248

Browse files
committed
centered layout: propagate dimension constraints from view
1 parent c5ef6da commit c080248

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

src/vs/base/browser/ui/centered/centeredViewLayout.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ function createEmptyView() {
3232
function toSplitViewView(view: IView, getHeight: () => number): ISplitViewView {
3333
return {
3434
element: view.element,
35-
maximumSize: view.maximumWidth,
36-
minimumSize: view.minimumWidth,
37-
onDidChange: mapEvent(view.onDidChange, widthAndHeight => widthAndHeight && widthAndHeight.width),
35+
get maximumSize() { return view.maximumWidth; },
36+
get minimumSize() { return view.minimumWidth; },
37+
onDidChange: mapEvent(view.onDidChange, e => e && e.width),
3838
layout: size => view.layout(size, getHeight())
3939
};
4040
}

src/vs/base/browser/ui/splitview/splitview.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,8 +425,17 @@ export class SplitView implements IDisposable {
425425

426426
size = typeof size === 'number' ? size : item.size;
427427
size = clamp(size, item.view.minimumSize, item.view.maximumSize);
428-
item.size = size;
429-
this.relayout(index);
428+
429+
if (this.inverseAltBehavior && index > 0) {
430+
// In this case, we want the view to grow or shrink both sides equally
431+
// so we just resize the "left" side by half and let `resize` do the clamping magic
432+
this.resize(index - 1, Math.floor((item.size - size) / 2));
433+
this.distributeEmptySpace();
434+
this.layoutViews();
435+
} else {
436+
item.size = size;
437+
this.relayout(index, undefined);
438+
}
430439
}
431440

432441
resizeView(index: number, size: number): void {

0 commit comments

Comments
 (0)