Skip to content

Commit 3bbd621

Browse files
committed
not using the sash width in the calculation of the height
1 parent 2483e08 commit 3bbd621

File tree

1 file changed

+20
-25
lines changed

1 file changed

+20
-25
lines changed

src/vs/editor/contrib/hover/browser/contentHover.ts

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,6 @@ class ContentHoverVisibleData {
444444

445445
const HORIZONTAL_SCROLLING_BY = 30;
446446
const SCROLLBAR_WIDTH = 10;
447-
const SASH_WIDTH_MINUS_BORDER = 3;
448447

449448
export class ContentHoverWidget extends ResizableContentWidget {
450449

@@ -555,8 +554,8 @@ export class ContentHoverWidget extends ResizableContentWidget {
555554

556555
private _setAdjustedHoverWidgetDimensions(size: dom.Dimension): void {
557556
this._setContentsDomNodeMaxDimensions('none', 'none');
558-
const width = size.width - 2 * SASH_WIDTH_MINUS_BORDER;
559-
const height = size.height - 2 * SASH_WIDTH_MINUS_BORDER;
557+
const width = size.width;
558+
const height = size.height;
560559
this._setHoverWidgetDimensions(width, height);
561560
// measure if widget has horizontal scrollbar after setting the dimensions
562561
if (this._hasHorizontalScrollbar()) {
@@ -591,7 +590,7 @@ export class ContentHoverWidget extends ResizableContentWidget {
591590
if (!availableSpace) {
592591
return;
593592
}
594-
let maximumHeight = 3 * SASH_WIDTH_MINUS_BORDER;
593+
let maximumHeight = 0;
595594
Array.from(this._hover.contentsDomNode.children).forEach((hoverPart) => {
596595
maximumHeight += hoverPart.clientHeight;
597596
});
@@ -662,10 +661,6 @@ export class ContentHoverWidget extends ResizableContentWidget {
662661
contentsDomNode.appendChild(node);
663662
}
664663

665-
private _getWidgetHeight(): number {
666-
return this._hover.containerDomNode.clientHeight + 2 * SASH_WIDTH_MINUS_BORDER;
667-
}
668-
669664
private _layoutContentWidget(): void {
670665
this._editor.layoutContentWidget(this);
671666
this._hover.onContentsChanged();
@@ -705,7 +700,7 @@ export class ContentHoverWidget extends ResizableContentWidget {
705700
return;
706701
}
707702
this._render(node, hoverData);
708-
const widgetHeight = this._getWidgetHeight();
703+
const widgetHeight = dom.getTotalHeight(this._hover.containerDomNode);
709704
const widgetPosition = hoverData.showAtPosition;
710705
this._positionPreference = this._findPositionPreference(widgetHeight, widgetPosition) ?? ContentWidgetPositionPreference.ABOVE;
711706

@@ -733,38 +728,38 @@ export class ContentHoverWidget extends ResizableContentWidget {
733728
}
734729
}
735730

736-
private _setPersistedHoverDimensionsOrRenderNormally(): void {
731+
private _removeConstraintsRenderNormally(): void {
737732
// Added because otherwise the initial size of the hover content is smaller than should be
738733
const layoutInfo = this._editor.getLayoutInfo();
739734
this._resizableNode.layout(layoutInfo.height, layoutInfo.width);
740735
this._setHoverWidgetDimensions('auto', 'auto');
741736
}
742737

743-
private _setContainerAbsolutePosition(top: number, left: number): void {
744-
const containerDomNode = this._hover.containerDomNode;
745-
containerDomNode.style.top = top + 'px';
746-
containerDomNode.style.left = left + 'px';
747-
}
748-
749738
private _adjustHoverHeightForScrollbar(height: number) {
750739
const containerDomNode = this._hover.containerDomNode;
751740
const contentsDomNode = this._hover.contentsDomNode;
752741
const maxRenderingHeight = this._findMaximumRenderingHeight() ?? Infinity;
753-
this._setContainerDomNodeDimensions(containerDomNode.clientWidth, Math.min(maxRenderingHeight, height));
754-
this._setContentsDomNodeDimensions(contentsDomNode.clientWidth, Math.min(maxRenderingHeight, height - SCROLLBAR_WIDTH));
742+
this._setContainerDomNodeDimensions(dom.getTotalWidth(containerDomNode), Math.min(maxRenderingHeight, height));
743+
this._setContentsDomNodeDimensions(dom.getTotalWidth(contentsDomNode), Math.min(maxRenderingHeight, height - SCROLLBAR_WIDTH));
755744
}
756745

757746
public onContentsChanged(): void {
758-
this._setPersistedHoverDimensionsOrRenderNormally();
747+
this._removeConstraintsRenderNormally();
759748
const containerDomNode = this._hover.containerDomNode;
760-
const clientHeight = containerDomNode.clientHeight;
761-
const clientWidth = containerDomNode.clientWidth;
762-
const totalBorderWidth = 2 * SASH_WIDTH_MINUS_BORDER;
763-
this._resizableNode.layout(clientHeight + totalBorderWidth, clientWidth + totalBorderWidth);
764-
this._setContainerAbsolutePosition(SASH_WIDTH_MINUS_BORDER - 1, SASH_WIDTH_MINUS_BORDER - 1);
749+
750+
let height = dom.getTotalHeight(containerDomNode);
751+
let width = dom.getTotalWidth(containerDomNode);
752+
this._resizableNode.layout(height, width);
753+
754+
this._setHoverWidgetDimensions(width, height);
755+
756+
height = dom.getTotalHeight(containerDomNode);
757+
width = dom.getTotalWidth(containerDomNode);
758+
this._resizableNode.layout(height, width);
759+
765760
if (this._hasHorizontalScrollbar()) {
766761
this._adjustContentsBottomPadding();
767-
this._adjustHoverHeightForScrollbar(clientHeight);
762+
this._adjustHoverHeightForScrollbar(height);
768763
}
769764
this._layoutContentWidget();
770765
}

0 commit comments

Comments
 (0)