From bca3be32e6b5ba8a8f3b2600533bf4f9b092b974 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 30 Sep 2015 16:23:49 +0200 Subject: [PATCH] Avoid to call ::prepareScreenRows explicitly --- spec/text-editor-component-spec.coffee | 3 --- src/lines-yardstick.coffee | 7 ++++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/spec/text-editor-component-spec.coffee b/spec/text-editor-component-spec.coffee index 3a672a882..caddb0ee5 100644 --- a/spec/text-editor-component-spec.coffee +++ b/spec/text-editor-component-spec.coffee @@ -3635,9 +3635,6 @@ describe "TextEditorComponent", -> event clientCoordinatesForScreenPosition = (screenPosition) -> - # TODO: Remove this line here when `pixelPositionForScreenPosition` will - # handle automatically screen row preparation for measurement. - wrapperNode.component.linesYardstick.prepareScreenRowsForMeasurement() positionOffset = wrapperNode.pixelPositionForScreenPosition(screenPosition) scrollViewClientRect = componentNode.querySelector('.scroll-view').getBoundingClientRect() clientX = scrollViewClientRect.left + positionOffset.left - wrapperNode.getScrollLeft() diff --git a/src/lines-yardstick.coffee b/src/lines-yardstick.coffee index 07fff489a..200f204d8 100644 --- a/src/lines-yardstick.coffee +++ b/src/lines-yardstick.coffee @@ -12,6 +12,8 @@ class LinesYardstick @pixelPositionsByLineIdAndColumn = {} prepareScreenRowsForMeasurement: (screenRows) -> + return unless @presenter.isBatching() + @presenter.setScreenRowsToMeasure(screenRows) @lineNodesProvider.updateSync(@presenter.getPreMeasurementState()) @@ -25,6 +27,8 @@ class LinesYardstick row = Math.min(row, @model.getLastScreenRow()) row = Math.max(0, row) + @prepareScreenRowsForMeasurement([row]) + line = @model.tokenizedLineForScreenRow(row) lineNode = @lineNodesProvider.lineNodeForLineIdAndScreenRow(line?.id, row) @@ -73,7 +77,8 @@ class LinesYardstick targetRow = screenPosition.row targetColumn = screenPosition.column - baseCharacterWidth = @baseCharacterWidth + + @prepareScreenRowsForMeasurement([targetRow]) top = targetRow * @model.getLineHeightInPixels() left = @leftPixelPositionForScreenPosition(targetRow, targetColumn)