mirror of
https://github.com/atom/atom.git
synced 2026-01-24 06:18:03 -05:00
Scroll every single tile left/right
This commit is contained in:
@@ -48,10 +48,6 @@ class LinesComponent
|
||||
@domNode.style.height = @newState.scrollHeight + 'px'
|
||||
@oldState.scrollHeight = @newState.scrollHeight
|
||||
|
||||
if @newState.scrollLeft isnt @oldState.scrollLeft
|
||||
@domNode.style['-webkit-transform'] = "translate3d(#{-@newState.scrollLeft}px, 0, 0px)"
|
||||
@oldState.scrollLeft = @newState.scrollLeft
|
||||
|
||||
if @newState.backgroundColor isnt @oldState.backgroundColor
|
||||
@domNode.style.backgroundColor = @newState.backgroundColor
|
||||
@oldState.backgroundColor = @newState.backgroundColor
|
||||
|
||||
@@ -764,15 +764,14 @@ class TextEditorComponent
|
||||
|
||||
screenPositionForMouseEvent: (event) ->
|
||||
pixelPosition = @pixelPositionForMouseEvent(event)
|
||||
pixelPosition.top += @presenter.scrollTop
|
||||
@editor.screenPositionForPixelPosition(pixelPosition)
|
||||
|
||||
pixelPositionForMouseEvent: (event) ->
|
||||
{clientX, clientY} = event
|
||||
|
||||
linesClientRect = @linesComponent.getDomNode().getBoundingClientRect()
|
||||
top = clientY - linesClientRect.top
|
||||
left = clientX - linesClientRect.left
|
||||
top = clientY - linesClientRect.top + @presenter.scrollTop
|
||||
left = clientX - linesClientRect.left + @presenter.scrollLeft
|
||||
{top, left}
|
||||
|
||||
getModel: ->
|
||||
|
||||
@@ -327,6 +327,7 @@ class TextEditorPresenter
|
||||
isNewTile = not @state.content.tiles.hasOwnProperty(startRow)
|
||||
tile = @state.content.tiles[startRow] ?= {}
|
||||
tile.top = startRow * @lineHeight - @scrollTop
|
||||
tile.left = -@scrollLeft
|
||||
tile.height = @tileSize * @lineHeight
|
||||
tile.newlyCreated = isNewTile
|
||||
tile.display = "block"
|
||||
@@ -410,10 +411,8 @@ class TextEditorPresenter
|
||||
|
||||
pixelPosition = @pixelPositionForScreenPosition(screenPosition, true)
|
||||
|
||||
{scrollLeft} = @state.content
|
||||
|
||||
top = pixelPosition.top + @lineHeight
|
||||
left = pixelPosition.left + @gutterWidth - scrollLeft
|
||||
left = pixelPosition.left + @gutterWidth
|
||||
|
||||
if overlayDimensions = @overlayDimensions[decoration.id]
|
||||
{itemWidth, itemHeight, contentMargin} = overlayDimensions
|
||||
@@ -795,8 +794,10 @@ class TextEditorPresenter
|
||||
@model.setScrollLeft(scrollLeft)
|
||||
@shouldUpdateHorizontalScrollState = true
|
||||
@shouldUpdateHiddenInputState = true
|
||||
@shouldUpdateCursorsState = true unless oldScrollLeft?
|
||||
@shouldUpdateCursorsState = true
|
||||
@shouldUpdateOverlaysState = true
|
||||
@shouldUpdateDecorations = true
|
||||
@shouldUpdateTilesState = true
|
||||
|
||||
@emitDidUpdateState()
|
||||
|
||||
@@ -1034,6 +1035,7 @@ class TextEditorPresenter
|
||||
column += charLength
|
||||
|
||||
top -= @scrollTop
|
||||
left -= @scrollLeft
|
||||
{top, left}
|
||||
|
||||
hasPixelRectRequirements: ->
|
||||
|
||||
@@ -43,9 +43,10 @@ class TileComponent
|
||||
@domNode.style.height = @newState.tiles[@id].height + 'px'
|
||||
@oldState.tiles[@id]?.height = @newState.tiles[@id].height
|
||||
|
||||
if @newState.tiles[@id].top isnt @oldState.tiles[@id]?.top
|
||||
@domNode.style['-webkit-transform'] = "translate3d(0, #{@newState.tiles[@id].top}px, 0px)"
|
||||
if (@newState.tiles[@id].top isnt @oldState.tiles[@id]?.top) or (@newState.tiles[@id].left isnt @oldState.tiles[@id]?.left)
|
||||
@domNode.style['-webkit-transform'] = "translate3d(#{@newState.tiles[@id].left}px, #{@newState.tiles[@id].top}px, 0px)"
|
||||
@oldState.tiles[@id]?.top = @newState.tiles[@id].top
|
||||
@oldState.tiles[@id]?.left = @newState.tiles[@id].left
|
||||
|
||||
if @newState.tiles[@id].newlyCreated
|
||||
newLineIds = []
|
||||
|
||||
Reference in New Issue
Block a user