From 5bcdcbeef6bb7e60f2c00119778bcd642eb78bbd Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 2 Dec 2015 16:13:44 +0100 Subject: [PATCH] :art: --- spec/text-editor-presenter-spec.coffee | 10 +++++----- src/linear-line-top-index.js | 6 ++---- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/spec/text-editor-presenter-spec.coffee b/spec/text-editor-presenter-spec.coffee index 0e80ed113..9b6f5b78e 100644 --- a/spec/text-editor-presenter-spec.coffee +++ b/spec/text-editor-presenter-spec.coffee @@ -191,17 +191,17 @@ describe "TextEditorPresenter", -> expect(stateFn(presenter).tiles[6].top).toBe((20 + 40) + (20 + 30) + 20 + 1) expect(stateFn(presenter).tiles[8]).toBeUndefined() - presenter.setScrollTop(21) + presenter.setScrollTop(22) expect(stateFn(presenter).tiles[0]).toBeUndefined() expect(stateFn(presenter).tiles[2].height).toBe(20 + 30) - expect(stateFn(presenter).tiles[2].top).toBe(0) + expect(stateFn(presenter).tiles[2].top).toBe(-1) expect(stateFn(presenter).tiles[4].height).toBe(20 + 40) - expect(stateFn(presenter).tiles[4].top).toBe(30 + 20) + expect(stateFn(presenter).tiles[4].top).toBe(30 + 20 - 1) expect(stateFn(presenter).tiles[6].height).toBe(20) - expect(stateFn(presenter).tiles[6].top).toBe((20 + 40) + (20 + 30)) + expect(stateFn(presenter).tiles[6].top).toBe((20 + 40) + (20 + 30) - 1) expect(stateFn(presenter).tiles[8].height).toBe(20) - expect(stateFn(presenter).tiles[8].top).toBe((20 + 40) + (20 + 30) + 20) + expect(stateFn(presenter).tiles[8].top).toBe((20 + 40) + (20 + 30) + 20 - 1) expect(stateFn(presenter).tiles[10]).toBeUndefined() it "includes state for all tiles if no external ::explicitHeight is assigned", -> diff --git a/src/linear-line-top-index.js b/src/linear-line-top-index.js index 7b6103f55..84a3bdf04 100644 --- a/src/linear-line-top-index.js +++ b/src/linear-line-top-index.js @@ -76,7 +76,7 @@ class LineTopIndex { return this.topPixelPositionForRow(row + 1) - this.defaultLineHeight } - rowForTopPixelPosition (top, roundingStrategy='round') { + rowForTopPixelPosition (top, roundingStrategy='floor') { let blocksHeight = 0 let lastRow = 0 let lastTop = 0 @@ -84,7 +84,7 @@ class LineTopIndex { let nextBlocksHeight = blocksHeight + block.height let linesHeight = block.row * this.defaultLineHeight if (nextBlocksHeight + linesHeight > top) { - while (lastRow < block.row && lastTop + this.defaultLineHeight / 2 < top) { + while (lastRow < block.row && lastTop + this.defaultLineHeight < top) { lastTop += this.defaultLineHeight lastRow++ } @@ -99,8 +99,6 @@ class LineTopIndex { let remainingHeight = Math.max(0, top - lastTop) let remainingRows = Math.min(this.maxRow, lastRow + remainingHeight / this.defaultLineHeight) switch (roundingStrategy) { - case "round": - return Math.round(remainingRows) case "floor": return Math.floor(remainingRows) case "ceil":