This commit is contained in:
parent
5ce7b02b6e
commit
dcce02644e
1 changed files with 10 additions and 13 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue