diff --git a/canvas.html b/canvas.html index 064c8ee..3eab104 100644 --- a/canvas.html +++ b/canvas.html @@ -87,7 +87,7 @@ // document.getElementById('term').innerHTML = xterm.toString('html'); - canvasXTerm.draw(xterm.getStyles()); + canvasXTerm.draw(xterm.styles()); var termCanvas = document.getElementById('term-canvas'); diff --git a/static/js/terminal/index.js b/static/js/terminal/index.js index 988f47d..6e5c818 100644 --- a/static/js/terminal/index.js +++ b/static/js/terminal/index.js @@ -1020,37 +1020,28 @@ AnsiTerminal.prototype.reset = function (){ }; /** - * getStyles + * styles * @returns {*|Array} */ -AnsiTerminal.prototype.getStyles = function (){ +AnsiTerminal.prototype.styles = function (){ + var stylesBuffer = []; var i, j, cols, node, styleBuffer; var rows = this.screen.buffer.length; - var stylesBuffer = this.stylesBuffer || []; - - stylesBuffer = stylesBuffer.slice(0, -rows); for (i = 0; i < rows; ++i) { - stylesBuffer[i] = stylesBuffer[i] || []; + stylesBuffer[i] = []; cols = this.screen.buffer[i].cells.length; - stylesBuffer[i] = stylesBuffer[i].slice(-cols); for (j = 0; j < cols; ++j) { - styleBuffer = stylesBuffer[i][j]; + styleBuffer = []; node = this.screen.buffer[i].cells[j]; - - if (!styleBuffer || styleBuffer.value !== node.value || styleBuffer.attr !== node.attr) { - styleBuffer = styles(node); - styleBuffer.attr = node.attr; - styleBuffer.value = node.value; - - stylesBuffer[i][j] = styleBuffer; - } + styleBuffer = styles(node); + styleBuffer.attr = node.attr; + styleBuffer.value = node.value; + stylesBuffer[i][j] = styleBuffer; } } - this.stylesBuffer = stylesBuffer; - return stylesBuffer; }; @@ -1069,7 +1060,7 @@ AnsiTerminal.prototype.toString = function (type){ var style = ''; var attrCache; var styleBuffer; - var stylesBuffer = this.getStyles(); + var stylesBuffer = this.styles(); for (i = 0; i < rows; ++i) { cols = this.screen.buffer[i].cells.length;