mirror of
https://github.com/atom/atom.git
synced 2026-04-06 03:02:13 -04:00
🎨
This commit is contained in:
@@ -80,8 +80,7 @@ class LinesComponent
|
||||
removeTileNode: (id) ->
|
||||
node = @tileComponentsByTileId[id].getDomNode()
|
||||
|
||||
node.style.display = "none"
|
||||
@freeDomNodes.push(node)
|
||||
node.remove()
|
||||
delete @tileComponentsByTileId[id]
|
||||
delete @oldState.tiles[id]
|
||||
|
||||
@@ -94,10 +93,9 @@ class LinesComponent
|
||||
if @oldState.tiles.hasOwnProperty(id)
|
||||
tileComponent = @tileComponentsByTileId[id]
|
||||
else
|
||||
domNode = @freeDomNodes.pop()
|
||||
tileComponent = @tileComponentsByTileId[id] = new TileComponent({id, @presenter, domNode})
|
||||
tileComponent = @tileComponentsByTileId[id] = new TileComponent({id, @presenter})
|
||||
|
||||
@domNode.appendChild(tileComponent.getDomNode()) unless domNode?
|
||||
@domNode.appendChild(tileComponent.getDomNode())
|
||||
@oldState.tiles[id] = cloneObject(tileState)
|
||||
|
||||
tileComponent.updateSync(@newState)
|
||||
|
||||
@@ -319,12 +319,10 @@ class TextEditorPresenter
|
||||
for startRow in @getVisibleTilesRange() by @tileSize
|
||||
endRow = Math.min(@model.getScreenLineCount(), startRow + @tileSize)
|
||||
|
||||
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"
|
||||
|
||||
@updateLinesState(tile, startRow, endRow)
|
||||
|
||||
@@ -50,27 +50,8 @@ class TileComponent
|
||||
@oldTileState.top = @newTileState.top
|
||||
@oldTileState.left = @newTileState.left
|
||||
|
||||
if @newTileState.newlyCreated
|
||||
newLineIds = []
|
||||
newLinesHTML = ""
|
||||
|
||||
for id, lineState of @newTileState.lines
|
||||
newLineIds.push(id)
|
||||
newLinesHTML += @buildLineHTML(id)
|
||||
@screenRowsByLineId[id] = lineState.screenRow
|
||||
@lineIdsByScreenRow[lineState.screenRow] = id
|
||||
@oldTileState.lines[id] = cloneObject(lineState)
|
||||
|
||||
return if newLineIds.length is 0
|
||||
|
||||
@domNode.innerHTML = newLinesHTML
|
||||
newLineNodes = _.toArray(@domNode.children)
|
||||
for id, i in newLineIds
|
||||
lineNode = newLineNodes[i]
|
||||
@lineNodesByLineId[id] = lineNode
|
||||
else
|
||||
@removeLineNodes() unless @oldState.indentGuidesVisible is @newState.indentGuidesVisible
|
||||
@updateLineNodes()
|
||||
@removeLineNodes() unless @oldState.indentGuidesVisible is @newState.indentGuidesVisible
|
||||
@updateLineNodes()
|
||||
|
||||
if @newState.scrollWidth isnt @oldState.scrollWidth
|
||||
@domNode.style.width = @newState.scrollWidth + 'px'
|
||||
|
||||
Reference in New Issue
Block a user