     return unless @editorView?
 
     #reset canvas virtual width/height
-    @lineCanvas[0].width = @lineCanvas[0].offsetWidth
-    @lineCanvas[0].height = @lineCanvas[0].offsetHeight
+    @lineCanvas[0].width = @lineCanvas[0].offsetWidth * devicePixelRatio
+    @lineCanvas[0].height = @lineCanvas[0].offsetHeight * devicePixelRatio
 
     #is this scroll only or has content changed?
     hasChanges = @pendingChanges.length > 0

    {row, column} = @buffer.constructor.Point.fromObject(position)
    actualRow = Math.floor(row)

    {top: row * @getLineHeight(), left: column}

  #     ######   #######  ##        #######  ########   ######
  #    ##    ## ##     ## ##       ##     ## ##     ## ##    ##

  # destRow - The row {Number} on the destination bitmap.
  # rowCount - The {Number} of rows to copy.
  copyBitmapPart: (context, bitmapCanvas, srcRow, destRow, rowCount) ->
    lineHeight = @getLineHeight() * devicePixelRatio
    context.drawImage(bitmapCanvas,
        0, srcRow * lineHeight,
        bitmapCanvas.width, rowCount * lineHeight,
