mirror of
https://github.com/atom/atom.git
synced 2026-01-25 06:48:28 -05:00
Make sure scroll positions are integers
This commit is contained in:
@@ -333,6 +333,14 @@ describe "TextEditorPresenter", ->
|
||||
expectStateUpdate presenter, -> presenter.setScrollLeft(50)
|
||||
expect(presenter.getState().horizontalScrollbar.scrollLeft).toBe 50
|
||||
|
||||
it "is always rounded to the nearest integer", ->
|
||||
presenter = buildPresenter(scrollLeft: 10, verticalScrollbarWidth: 10, contentFrameWidth: 500)
|
||||
expect(presenter.getState().content.scrollLeft).toBe 10
|
||||
expectStateUpdate presenter, -> presenter.setScrollLeft(11.4)
|
||||
expect(presenter.getState().content.scrollLeft).toBe 11
|
||||
expectStateUpdate presenter, -> presenter.setScrollLeft(12.6)
|
||||
expect(presenter.getState().content.scrollLeft).toBe 13
|
||||
|
||||
it "never exceeds the computed scrollWidth minus the computed clientWidth", ->
|
||||
presenter = buildPresenter(scrollLeft: 10, verticalScrollbarWidth: 10, explicitHeight: 100, contentFrameWidth: 500)
|
||||
expectStateUpdate presenter, -> presenter.setScrollLeft(300)
|
||||
@@ -674,6 +682,14 @@ describe "TextEditorPresenter", ->
|
||||
expectStateUpdate presenter, -> presenter.setScrollTop(50)
|
||||
expect(presenter.getState().content.scrollTop).toBe 50
|
||||
|
||||
it "is always rounded to the nearest integer", ->
|
||||
presenter = buildPresenter(scrollTop: 10, lineHeight: 10, explicitHeight: 20)
|
||||
expect(presenter.getState().content.scrollTop).toBe 10
|
||||
expectStateUpdate presenter, -> presenter.setScrollTop(11.4)
|
||||
expect(presenter.getState().content.scrollTop).toBe 11
|
||||
expectStateUpdate presenter, -> presenter.setScrollTop(12.6)
|
||||
expect(presenter.getState().content.scrollTop).toBe 13
|
||||
|
||||
it "scrolls down automatically when the model is changed", ->
|
||||
presenter = buildPresenter(scrollTop: 0, lineHeight: 10, explicitHeight: 20)
|
||||
|
||||
|
||||
@@ -1526,13 +1526,13 @@ class TextEditorPresenter
|
||||
@setScrollRight(desiredScrollRight)
|
||||
|
||||
commitPendingScrollLeftPosition: ->
|
||||
scrollLeft = @constrainScrollLeft(@pendingScrollLeft)
|
||||
scrollLeft = Math.round(@constrainScrollLeft(@pendingScrollLeft))
|
||||
if scrollLeft isnt @scrollLeft and not Number.isNaN(scrollLeft)
|
||||
@scrollLeft = scrollLeft
|
||||
@model.setScrollLeft(scrollLeft)
|
||||
|
||||
commitPendingScrollTopPosition: ->
|
||||
scrollTop = @constrainScrollTop(@pendingScrollTop)
|
||||
scrollTop = Math.round(@constrainScrollTop(@pendingScrollTop))
|
||||
if scrollTop isnt @scrollTop and not Number.isNaN(scrollTop)
|
||||
@scrollTop = scrollTop
|
||||
@model.setScrollTop(scrollTop)
|
||||
|
||||
Reference in New Issue
Block a user