From e86cdd8dfe168e5cff9152f7e2ef6058bd06a42b Mon Sep 17 00:00:00 2001 From: Aiday Marlen Kyzy Date: Fri, 14 Jul 2023 11:18:50 +0200 Subject: [PATCH] refactoring the code --- .../contrib/hover/browser/contentHover.ts | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/vs/editor/contrib/hover/browser/contentHover.ts b/src/vs/editor/contrib/hover/browser/contentHover.ts index cb9e19bd001..6ceb236f057 100644 --- a/src/vs/editor/contrib/hover/browser/contentHover.ts +++ b/src/vs/editor/contrib/hover/browser/contentHover.ts @@ -195,9 +195,7 @@ export class ContentHoverController extends Disposable { private _setCurrentResult(hoverResult: HoverResult | null): void { if (this._currentResult === hoverResult) { - if (hoverResult === null && !this._widget.isFocused) { - this._widget.hide(); - } + // avoid updating the DOM to avoid resetting the user selection return; } if (hoverResult && hoverResult.messages.length === 0) { @@ -207,9 +205,6 @@ export class ContentHoverController extends Disposable { if (this._currentResult) { this._renderMessages(this._currentResult.anchor, this._currentResult.messages); } else { - if (this._widget.isFocused) { - return; - } this._widget.hide(); } } @@ -232,6 +227,10 @@ export class ContentHoverController extends Disposable { return this._widget.isVisible; } + public isFocused(): boolean { + return this._widget.isFocused; + } + public containsNode(node: Node | null | undefined): boolean { return (node ? this._widget.getDomNode().contains(node) : false); } @@ -264,7 +263,9 @@ export class ContentHoverController extends Disposable { return; } } - + if (hoverResult.messages.length === 0 && this._widget.isFocused) { + return; + } this._setCurrentResult(hoverResult); } @@ -735,7 +736,10 @@ export class ContentHoverWidget extends ResizableContentWidget { } public hide(): void { - const stoleFocus = this._visibleData?.stoleFocus || this._hoverFocusedKey.get(); + if (!this._visibleData) { + return; + } + const stoleFocus = this._visibleData.stoleFocus || this._hoverFocusedKey.get(); this._setHoverData(undefined); this._resizableNode.maxSize = new dom.Dimension(Infinity, Infinity); this._resizableNode.clearSashHoverState();