Use global range. Faster! Less garbage!

This commit is contained in:
Ben Ogle 2013-10-02 15:09:34 -07:00
parent 5a772d7078
commit 8463c759b5
2 changed files with 6 additions and 6 deletions

View File

@ -59,7 +59,7 @@ describe "editor.", ->
editor.insertText('"')
editor.backspace()
describe "calculating-pixel-position.", ->
fdescribe "calculating-pixel-position.", ->
line = null
beforeEach ->
editor.scrollTop(2000)

View File

@ -9,6 +9,8 @@ fsUtils = require './fs-utils'
$ = require './jquery-extensions'
_ = require './underscore-extensions'
MEASURE_RANGE = document.createRange()
# Private: Represents the entire visual pane in Atom.
#
# The Editor manages the {EditSession}, which manages the file buffers.
@ -1563,11 +1565,9 @@ class Editor extends View
break
delta = nextDelta
range = document.createRange()
range.setEnd(textNode, offset)
range.collapse()
left = range.getClientRects()[0].left - Math.floor(@scrollView.offset().left) + Math.floor(@scrollLeft())
range.detach()
MEASURE_RANGE.setEnd(textNode, offset)
MEASURE_RANGE.collapse()
left = MEASURE_RANGE.getClientRects()[0].left - Math.floor(@scrollView.offset().left) + Math.floor(@scrollLeft())
lineCache[column] = left
left