update files

This commit is contained in:
nuintun 2015-12-04 09:42:08 +08:00
parent 0cfbb0c0ac
commit c60298b4a7
2 changed files with 11 additions and 20 deletions

View File

@ -87,7 +87,7 @@
// document.getElementById('term').innerHTML = xterm.toString('html'); // document.getElementById('term').innerHTML = xterm.toString('html');
canvasXTerm.draw(xterm.getStyles()); canvasXTerm.draw(xterm.styles());
var termCanvas = document.getElementById('term-canvas'); var termCanvas = document.getElementById('term-canvas');

View File

@ -1020,36 +1020,27 @@ AnsiTerminal.prototype.reset = function (){
}; };
/** /**
* getStyles * styles
* @returns {*|Array} * @returns {*|Array}
*/ */
AnsiTerminal.prototype.getStyles = function (){ AnsiTerminal.prototype.styles = function (){
var stylesBuffer = [];
var i, j, cols, node, styleBuffer; var i, j, cols, node, styleBuffer;
var rows = this.screen.buffer.length; var rows = this.screen.buffer.length;
var stylesBuffer = this.stylesBuffer || [];
stylesBuffer = stylesBuffer.slice(0, -rows);
for (i = 0; i < rows; ++i) { for (i = 0; i < rows; ++i) {
stylesBuffer[i] = stylesBuffer[i] || []; stylesBuffer[i] = [];
cols = this.screen.buffer[i].cells.length; cols = this.screen.buffer[i].cells.length;
stylesBuffer[i] = stylesBuffer[i].slice(-cols);
for (j = 0; j < cols; ++j) { for (j = 0; j < cols; ++j) {
styleBuffer = stylesBuffer[i][j]; styleBuffer = [];
node = this.screen.buffer[i].cells[j]; node = this.screen.buffer[i].cells[j];
if (!styleBuffer || styleBuffer.value !== node.value || styleBuffer.attr !== node.attr) {
styleBuffer = styles(node); styleBuffer = styles(node);
styleBuffer.attr = node.attr; styleBuffer.attr = node.attr;
styleBuffer.value = node.value; styleBuffer.value = node.value;
stylesBuffer[i][j] = styleBuffer; stylesBuffer[i][j] = styleBuffer;
} }
} }
}
this.stylesBuffer = stylesBuffer;
return stylesBuffer; return stylesBuffer;
}; };
@ -1069,7 +1060,7 @@ AnsiTerminal.prototype.toString = function (type){
var style = ''; var style = '';
var attrCache; var attrCache;
var styleBuffer; var styleBuffer;
var stylesBuffer = this.getStyles(); var stylesBuffer = this.styles();
for (i = 0; i < rows; ++i) { for (i = 0; i < rows; ++i) {
cols = this.screen.buffer[i].cells.length; cols = this.screen.buffer[i].cells.length;