mirror of
https://github.com/atom/atom.git
synced 2026-02-10 06:35:00 -05:00
Sync multiple cursor animations
This commit is contained in:
@@ -16,7 +16,9 @@ class Cursor extends View
|
||||
@editor = editor
|
||||
@anchor = new Anchor(@editor, screenPosition)
|
||||
@selection = @editor.compositeSelection.addSelectionForCursor(this)
|
||||
@one 'attach', => @updateAppearance()
|
||||
@one 'attach', =>
|
||||
@updateAppearance()
|
||||
@editor.syncCursorAnimations()
|
||||
|
||||
handleBufferChange: (e) ->
|
||||
@anchor.handleBufferChange(e)
|
||||
@@ -52,6 +54,11 @@ class Cursor extends View
|
||||
window.clearTimeout(@idleTimeout) if @idleTimeout
|
||||
@idleTimeout = window.setTimeout (=> @addClass 'idle'), 200
|
||||
|
||||
resetCursorAnimation: ->
|
||||
window.clearTimeout(@idleTimeout) if @idleTimeout
|
||||
@removeClass 'idle'
|
||||
_.defer => @addClass 'idle'
|
||||
|
||||
clearSelection: ->
|
||||
@selection.clearSelection() unless @selection.retainSelection
|
||||
|
||||
|
||||
@@ -186,6 +186,7 @@ class Editor extends View
|
||||
@off 'mousemove', moveHandler
|
||||
reverse = @compositeSelection.getLastSelection().isReversed()
|
||||
@compositeSelection.mergeIntersectingSelections({reverse})
|
||||
@syncCursorAnimations()
|
||||
|
||||
renderLines: ->
|
||||
@lineCache = []
|
||||
@@ -514,5 +515,9 @@ class Editor extends View
|
||||
else if desiredLeft < @scroller.scrollLeft()
|
||||
@scroller.scrollLeft(desiredLeft)
|
||||
|
||||
syncCursorAnimations: ->
|
||||
for cursor in @getCursors()
|
||||
do (cursor) -> cursor.resetCursorAnimation()
|
||||
|
||||
logLines: ->
|
||||
@renderer.logLines()
|
||||
|
||||
Reference in New Issue
Block a user