restore setInnerHtml optimization for text layer

This commit is contained in:
nightwing 2011-05-08 18:22:08 +05:00
commit 2c9404224b

View file

@ -286,12 +286,24 @@ var Text = function(parentEl) {
this.config = config; this.config = config;
var html = []; var html = [];
var tokens = this.session.getTokens(config.firstRow, config.lastRow) var firstRow = config.firstRow, lastRow = config.lastRow;
var fragment = this.$renderLinesFragment(config, config.firstRow, config.lastRow); var tokens = this.session.getTokens(firstRow, lastRow)
// Clear the current content of the element and add the rendered fragment. for (var row=firstRow; row<=lastRow; row++) {
this.element.innerHTML = ""; html.push("<div class='ace_line' style='height:",
this.element.appendChild(fragment); this.session.getRowHeight(config, row) + "px;", "width", config.width + "px'>"
)
// Get the tokens per line as there might be some lines in between
// beeing folded.
// OPTIMIZE: If there is a long block of unfolded lines, just make
// this call once for that big block of unfolded lines.
var tokens = this.session.getTokens(row, row);
if (tokens.length == 1)
this.$renderLine(html, row, tokens[0].tokens);
html.push("</div>")
row = this.session.getRowFoldEnd(row);
}
this.element = dom.setInnerHtml(this.element, html.join(""));
}; };
this.$textToken = { this.$textToken = {