mirror of
https://github.com/atom/atom.git
synced 2026-01-24 06:18:03 -05:00
Ensure new non-empty selections have an invisible cursor.
This commit is contained in:
@@ -719,6 +719,8 @@ describe "EditSession", ->
|
||||
[[4, 16], [4, 21]]
|
||||
[[4, 25], [4, 29]]
|
||||
]
|
||||
for cursor in editSession.getCursors()
|
||||
expect(cursor.isVisible()).toBeFalsy()
|
||||
|
||||
it "honors the original selection's region when adding across shorter lines", ->
|
||||
editSession.setSelectedBufferRange([[3, 22], [3, 38]])
|
||||
|
||||
@@ -27,6 +27,9 @@ class BufferMarker
|
||||
isReversed: ->
|
||||
@tailPosition? and @headPosition.isLessThan(@tailPosition)
|
||||
|
||||
hasTail: ->
|
||||
@tailPosition?
|
||||
|
||||
getRange: ->
|
||||
if @tailPosition
|
||||
new Range(@tailPosition, @headPosition)
|
||||
|
||||
@@ -12,9 +12,9 @@ class Cursor
|
||||
needsAutoscroll: null
|
||||
|
||||
constructor: ({@editSession, @marker}) ->
|
||||
@updateVisibility()
|
||||
@editSession.observeMarker @marker, (e) =>
|
||||
@setVisible(@selection.isEmpty())
|
||||
|
||||
@updateVisibility()
|
||||
{oldHeadScreenPosition, newHeadScreenPosition} = e
|
||||
{oldHeadBufferPosition, newHeadBufferPosition} = e
|
||||
{bufferChanged} = e
|
||||
@@ -59,6 +59,9 @@ class Cursor
|
||||
unless fn()
|
||||
@trigger 'autoscrolled' if @needsAutoscroll
|
||||
|
||||
updateVisibility: ->
|
||||
@setVisible(not @editSession.doesMarkerHaveTail(@marker))
|
||||
|
||||
setVisible: (visible) ->
|
||||
if @visible != visible
|
||||
@visible = visible
|
||||
|
||||
@@ -400,6 +400,9 @@ class DisplayBuffer
|
||||
isMarkerReversed: (id) ->
|
||||
@buffer.isMarkerReversed(id)
|
||||
|
||||
doesMarkerHaveTail: (id) ->
|
||||
@buffer.doesMarkerHaveTail(id)
|
||||
|
||||
observeMarker: (id, callback) ->
|
||||
@getMarker(id).observe(callback)
|
||||
|
||||
|
||||
@@ -556,6 +556,9 @@ class EditSession
|
||||
isMarkerReversed: (args...) ->
|
||||
@displayBuffer.isMarkerReversed(args...)
|
||||
|
||||
doesMarkerHaveTail: (args...) ->
|
||||
@displayBuffer.doesMarkerHaveTail(args...)
|
||||
|
||||
hasMultipleCursors: ->
|
||||
@getCursors().length > 1
|
||||
|
||||
|
||||
@@ -339,6 +339,9 @@ class Buffer
|
||||
isMarkerReversed: (id) ->
|
||||
@validMarkers[id]?.isReversed()
|
||||
|
||||
doesMarkerHaveTail: (id) ->
|
||||
@validMarkers[id]?.hasTail()
|
||||
|
||||
observeMarker: (id, callback) ->
|
||||
@validMarkers[id]?.observe(callback)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user