Use LineWrapper to calculate pixelPositionFromPoint

This commit is contained in:
Nathan Sobo
2012-02-08 09:49:51 -07:00
parent a16bc99249
commit bb72c839da
2 changed files with 5 additions and 14 deletions

View File

@@ -191,18 +191,9 @@ class Editor extends View
new Point(row, column)
pixelPositionFromPoint: ({row, column}) ->
segmentsAbove = 0
segmentsAbove += @lineWrapper.segmentsForRow(i).length for i in [0...row]
for segment in @lineWrapper.segmentsForRow(row)
if column > segment.lastIndex
segmentsAbove++
column -= segment.textLength
else
break
{ top: segmentsAbove * @lineHeight, left: column * @charWidth }
pixelPositionFromPoint: (position) ->
{ row, column } = @lineWrapper.displayPositionFromBufferPosition(position)
{ top: row * @lineHeight, left: column * @charWidth }
pointFromPixelPosition: ({top, left}) ->
{ row: Math.floor(top / @lineHeight), column: Math.floor(left / @charWidth) }