mirror of
https://github.com/atom/atom.git
synced 2026-01-23 05:48:10 -05:00
Mark last cursor for autoscroll on undo/redo
This commit is contained in:
@@ -958,6 +958,16 @@ describe "Editor", ->
|
||||
editor.insertText('\n\n')
|
||||
expect(editor.scrollToPixelPosition.callCount).toBe 1
|
||||
|
||||
it "autoscrolls on undo/redo", ->
|
||||
editor.getCursor().clearAutoscroll()
|
||||
spyOn(editor, 'scrollToPixelPosition').andCallThrough()
|
||||
editor.insertText('\n\n')
|
||||
expect(editor.scrollToPixelPosition.callCount).toBe 1
|
||||
editor.undo()
|
||||
expect(editor.scrollToPixelPosition.callCount).toBe 2
|
||||
editor.redo()
|
||||
expect(editor.scrollToPixelPosition.callCount).toBe 3
|
||||
|
||||
describe "when the last cursor exceeds the upper or lower scroll margins", ->
|
||||
describe "when the editor is taller than twice the vertical scroll margin", ->
|
||||
it "sets the scrollTop so the cursor remains within the scroll margin", ->
|
||||
|
||||
@@ -27,7 +27,7 @@ class Cursor
|
||||
{textChanged} = e
|
||||
return if oldHeadScreenPosition.isEqual(newHeadScreenPosition)
|
||||
|
||||
@needsAutoscroll ?= @isLastCursor()
|
||||
@needsAutoscroll ?= @isLastCursor() and !textChanged
|
||||
|
||||
movedEvent =
|
||||
oldBufferPosition: oldHeadBufferPosition
|
||||
|
||||
@@ -574,10 +574,14 @@ class EditSession
|
||||
|
||||
# Public: Undoes the last change.
|
||||
undo: ->
|
||||
cursor = @getCursor()
|
||||
cursor.needsAutoscroll = cursor.isLastCursor()
|
||||
@buffer.undo(this)
|
||||
|
||||
# Pulic: Redoes the last change.
|
||||
redo: ->
|
||||
cursor = @getCursor()
|
||||
cursor.needsAutoscroll = cursor.isLastCursor()
|
||||
@buffer.redo(this)
|
||||
|
||||
# Public: Folds all the rows.
|
||||
|
||||
Reference in New Issue
Block a user