mirror of
https://github.com/atom/atom.git
synced 2026-02-09 06:05:11 -05:00
Rely on clipScreenPosition in vertical movement methods
Before, we were manually clipping the position of the cursor in vertical movement methods. Now we can just increment / decrement the row and the position will be clipped when it is assigned. Also, changed the definition of clip screen position to always 0 out the column when the row is negative.
This commit is contained in:
@@ -50,11 +50,7 @@ class Cursor extends View
|
||||
moveUp: ->
|
||||
{ row, column } = @getScreenPosition()
|
||||
column = @goalColumn if @goalColumn?
|
||||
if row > 0
|
||||
@setScreenPosition({row: row - 1, column: column})
|
||||
else
|
||||
@moveToLineStart()
|
||||
|
||||
@setScreenPosition({row: row - 1, column: column})
|
||||
@goalColumn = column
|
||||
|
||||
moveDown: ->
|
||||
|
||||
@@ -144,7 +144,12 @@ class LineMap
|
||||
clipScreenPosition: (screenPosition, eagerWrap) ->
|
||||
screenPosition = Point.fromObject(screenPosition)
|
||||
|
||||
screenPosition = new Point(Math.max(0, screenPosition.row), Math.max(0, screenPosition.column))
|
||||
screenPosition.column = Math.max(0, screenPosition.column)
|
||||
|
||||
if screenPosition.row < 0
|
||||
screenPosition.row = 0
|
||||
screenPosition.column = 0
|
||||
|
||||
maxRow = @lastScreenRow()
|
||||
if screenPosition.row > maxRow
|
||||
screenPosition.row = maxRow
|
||||
|
||||
Reference in New Issue
Block a user