   hasLineNode: (lineId) ->
     @lineNodesByLineId.hasOwnProperty(lineId)
 
-  buildTranslate3d: (top, left) ->
-    "translate3d(#{left}px, #{top}px, 0px)"
+  buildTranslate3d: (top) ->
+    "translate3d(0px, #{top}px, 0px)"
 
   buildLineHTML: (line, top, left) ->
     {editor, mini, showIndentGuide} = @props
     {tokens, text, lineEnding, fold, isSoftWrapped, indentLevel} = line
     translate3d = @buildTranslate3d(top, left)
-    lineHTML = "<div class=\"line editor-colors\" style=\"-webkit-transform: #{translate3d};\">"
+    lineHTML = "<div class=\"line editor-colors\" style=\"top: #{top}px;\">"
 
     if text is ""
       lineHTML += "&nbsp;"

  updateLines: ->
    {editor, visibleRowRange, showIndentGuide, selectionChanged} = @props
    [startRow, endRow] = visibleRowRange
    visibleLines = editor.linesForScreenRows(startRow, endRow - 1)
    @removeNonVisibleLineNodes(visibleLines)
    @appendOrUpdateVisibleLineNodes(visibleLines)

  removeNonVisibleLineNodes: (visibleLines) ->
    visibleLineIds = new Set

    scopeStack.push(scope)
    "<span class=\"#{scope.replace(/\.+/g, ' ')}\">"

  updateLineNode: (tokenizedLine, top) ->
    lineNode = @lineNodesByLineId[tokenizedLine.id]
    lineNode.style.top = top + 'px'

  measureLineHeightAndCharWidth: ->
    node = @getDOMNode()
