From cf082cca04d7c0b53d19e6c94612daf22f304827 Mon Sep 17 00:00:00 2001 From: Jon Bockhorst Date: Fri, 1 Nov 2019 11:24:21 -0500 Subject: [PATCH] Fix links when viewport is scrolled --- src/browser/Linkifier2.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/browser/Linkifier2.ts b/src/browser/Linkifier2.ts index c9826bccd..8f794fc2b 100644 --- a/src/browser/Linkifier2.ts +++ b/src/browser/Linkifier2.ts @@ -49,6 +49,8 @@ export class Linkifier2 implements ILinkifier2 { return; } + const scrollOffset = this._bufferService.buffer.ydisp; + // Check the cache for a link and determine if we need to show or hide tooltip let foundLink = false; this._linkCache.forEach((cachedLink, i) => { @@ -56,7 +58,7 @@ export class Linkifier2 implements ILinkifier2 { const range = cachedLink.link.range; if (isInPosition && !cachedLink.mouseOver) { // Show the tooltip - this._onShowTooltip.fire(this._createLinkHoverEvent(range.start.x - 1, range.start.y - 1, range.end.x - 1, range.end.y - 1, undefined)); + this._onShowTooltip.fire(this._createLinkHoverEvent(range.start.x - 1, range.start.y - scrollOffset - 1, range.end.x - 1, range.end.y - scrollOffset - 1, undefined)); this._element!.classList.add('xterm-cursor-pointer'); if (cachedLink.link.showTooltip) { @@ -67,7 +69,7 @@ export class Linkifier2 implements ILinkifier2 { foundLink = true; } else if (!isInPosition && cachedLink.mouseOver) { // Hide the tooltip - this._onHideTooltip.fire(this._createLinkHoverEvent(range.start.x - 1, range.start.y - 1, range.end.x - 1, range.end.y - 1, undefined)); + this._onHideTooltip.fire(this._createLinkHoverEvent(range.start.x - 1, range.start.y - scrollOffset - 1, range.end.x - 1, range.end.y - scrollOffset - 1, undefined)); this._element!.classList.remove('xterm-cursor-pointer'); if (cachedLink.link.hideTooltip) {