提交 dcce0264 编写于 作者: J Johannes Rieken
上级 5ce7b02b
......@@ -741,12 +741,16 @@ export class SuggestWidget implements IDisposable {
return;
}
let height = size?.height;
let width = size?.width;
const bodyBox = dom.getClientArea(document.body);
const info = this.getLayoutInfo();
if (!size) {
size = info.defaultSize;
}
let height = size.height;
let width = size.width;
// status bar
this._status.element.style.lineHeight = `${info.itemHeight}px`;
......@@ -763,9 +767,6 @@ export class SuggestWidget implements IDisposable {
// width math
const maxWidth = bodyBox.width - info.borderHeight - 2 * info.horizontalPadding;
if (width === undefined) {
width = info.defaultSize.width;
}
if (width > maxWidth) {
width = maxWidth;
}
......@@ -773,7 +774,6 @@ export class SuggestWidget implements IDisposable {
// height math
const fullHeight = info.statusBarHeight + this._list.contentHeight + info.borderHeight;
const preferredHeight = info.defaultSize.height;
const minHeight = info.itemHeight + info.statusBarHeight;
const editorBox = dom.getDomNodePagePosition(this.editor.getDomNode());
const cursorBox = this.editor.getScrolledVisiblePosition(this.editor.getPosition());
......@@ -782,15 +782,12 @@ export class SuggestWidget implements IDisposable {
const maxHeightAbove = Math.min(editorBox.top + cursorBox.top - info.verticalPadding, fullHeight);
let maxHeight = Math.min(Math.max(maxHeightAbove, maxHeightBelow) + info.borderHeight, fullHeight);
if (height && height === this._cappedHeight?.capped) {
if (height === this._cappedHeight?.capped) {
// Restore the old (wanted) height when the current
// height is capped to fit
height = this._cappedHeight.wanted;
}
if (height === undefined) {
height = Math.min(preferredHeight, fullHeight);
}
if (height < minHeight) {
height = minHeight;
}
......@@ -808,14 +805,14 @@ export class SuggestWidget implements IDisposable {
this.element.enableSashes(false, true, true, false);
maxHeight = maxHeightBelow;
}
this.element.preferredSize = new dom.Dimension(preferredWidth, preferredHeight);
this.element.preferredSize = new dom.Dimension(preferredWidth, info.defaultSize.height);
this.element.maxSize = new dom.Dimension(maxWidth, maxHeight);
this.element.minSize = new dom.Dimension(220, minHeight);
// Know when the height was capped to fit and remember
// the wanted height for later. This is required when going
// left to widen suggestions.
this._cappedHeight = size && height === fullHeight
this._cappedHeight = height === fullHeight
? { wanted: this._cappedHeight?.wanted ?? size.height, capped: height }
: undefined;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册