Scroll every single tile left/right

This commit is contained in:
Antonio Scandurra
2015-05-14 11:36:20 +02:00
parent c39b1d2159
commit 6be88fd645
4 changed files with 11 additions and 13 deletions

View File

@@ -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

View File

@@ -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: ->

View File

@@ -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: ->

View File

@@ -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 = []