From 16abf71b780fb3aa3e2b0480a3601fa9596bb87f Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 22 Jan 2018 11:51:09 -0800 Subject: [PATCH 1/2] Use explicit null check to ensure start/end row is valid It looks like this could have caused the inconsistent behavior with links not activating and then working again after scrolling Fixes #1233 --- src/Linkifier.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Linkifier.ts b/src/Linkifier.ts index 76771930..e82a553b 100644 --- a/src/Linkifier.ts +++ b/src/Linkifier.ts @@ -82,12 +82,12 @@ export class Linkifier extends EventEmitter implements ILinkifier { } // Increase range to linkify - if (!this._rowsToLinkify.start) { + if (this._rowsToLinkify.start === null) { this._rowsToLinkify.start = start; this._rowsToLinkify.end = end; } else { - this._rowsToLinkify.start = this._rowsToLinkify.start < start ? this._rowsToLinkify.start : start; - this._rowsToLinkify.end = this._rowsToLinkify.end > end ? this._rowsToLinkify.end : end; + this._rowsToLinkify.start = Math.min(this._rowsToLinkify.start, start); + this._rowsToLinkify.end = Math.max(this._rowsToLinkify.end, end); } // Clear out any existing links on this row range @@ -97,7 +97,7 @@ export class Linkifier extends EventEmitter implements ILinkifier { if (this._rowsTimeoutId) { clearTimeout(this._rowsTimeoutId); } - this._rowsTimeoutId = setTimeout(() => this._linkifyRows(), Linkifier.TIME_BEFORE_LINKIFY); + this._rowsTimeoutId = window.setTimeout(() => this._linkifyRows(), Linkifier.TIME_BEFORE_LINKIFY); } /** From a9d3e61794c384efeed16eda220727da707314d0 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 22 Jan 2018 12:43:42 -0800 Subject: [PATCH 2/2] Fix tests --- src/Linkifier.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Linkifier.ts b/src/Linkifier.ts index e82a553b..b5f30b56 100644 --- a/src/Linkifier.ts +++ b/src/Linkifier.ts @@ -97,7 +97,7 @@ export class Linkifier extends EventEmitter implements ILinkifier { if (this._rowsTimeoutId) { clearTimeout(this._rowsTimeoutId); } - this._rowsTimeoutId = window.setTimeout(() => this._linkifyRows(), Linkifier.TIME_BEFORE_LINKIFY); + this._rowsTimeoutId = setTimeout(() => this._linkifyRows(), Linkifier.TIME_BEFORE_LINKIFY); } /**