From d1991396e758f5d36ecce8403bf56f046b65d42f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Agusti=CC=81n=20Rodri=CC=81guez?= Date: Fri, 21 Sep 2018 01:09:20 -0300 Subject: [PATCH] generalized loops to handle both single and multi line links --- src/renderer/dom/DomRenderer.ts | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/src/renderer/dom/DomRenderer.ts b/src/renderer/dom/DomRenderer.ts index 399ac406..9933276c 100644 --- a/src/renderer/dom/DomRenderer.ts +++ b/src/renderer/dom/DomRenderer.ts @@ -361,29 +361,10 @@ export class DomRenderer extends EventEmitter implements IRenderer { this._setBorderBottomAtCells(e.x1, e.x2, e.y1, e.y2, e.cols, null); } - private _setBorderBottomAtCells(x1: number, x2: number, y1: number, y2: number, cols: number, value?: string) { - if (y1 === y2) { - // Single line link - for (let x = x1; x < x2; x++) { - let span = (this._rowElements[y1].children[x]); - span.style.borderBottom = value; - } - } else { - // Multi-line link - for (let x = x1; x < cols - x1; x++) { - let span = (this._rowElements[y1].children[x]); - span.style.borderBottom = value; - } - for (let y = y1 + 1; y < y2 - 1; y++) { - for (let x = 0; x < cols; x++) { - let span = (this._rowElements[y].children[x]); - span.style.borderBottom = value; - } - } - for (let x = 0; x < x2; x++) { - let span = (this._rowElements[y2].children[x]); - span.style.borderBottom = value; - } + private _setBorderBottomAtCells(x: number, x2: number, y: number, y2: number, cols: number, value?: string) { + for (; x != x2 || y != y2; x = ++x % cols, y += +(x === 0)) { + let span = (this._rowElements[y].children[x]); + span.style.borderBottom = value; } }