diff --git a/demo/main.js b/demo/main.js index 52da2cef2..078b5c8d6 100644 --- a/demo/main.js +++ b/demo/main.js @@ -28,7 +28,9 @@ function setTerminalSize () { colsElement.addEventListener('change', setTerminalSize); rowsElement.addEventListener('change', setTerminalSize); -optionElements.cursorBlink.addEventListener('change', createTerminal); +optionElements.cursorBlink.addEventListener('change', function () { + term.setOption('cursorBlink', optionElements.cursorBlink.checked); +}); optionElements.scrollback.addEventListener('change', function () { terminal.setOption('scrollback', parseInt(optionElements.scrollback.value, 10)); }); diff --git a/src/test/test.js b/src/test/test.js index 7c716b2ab..4f9342e5b 100644 --- a/src/test/test.js +++ b/src/test/test.js @@ -23,6 +23,11 @@ describe('xterm.js', function() { xterm.writeBuffer.push(data); xterm.innerWrite(); }; + xterm.element = { + classList: { + toggle: function(){} + } + }; }); describe('getOption', function() { diff --git a/src/xterm.css b/src/xterm.css index 3f4f4bbe0..4ef61fdfe 100644 --- a/src/xterm.css +++ b/src/xterm.css @@ -82,11 +82,11 @@ background-color: transparent; } -.terminal.focus .terminal-cursor.blinking { - animation: blink-cursor 1.2s infinite step-end; +.terminal.focus.xterm-cursor-blink .terminal-cursor { + animation: cursor-blink 1.2s infinite step-end; } -@keyframes blink-cursor { +@keyframes cursor-blink { 0% { background-color: #fff; color: #000; diff --git a/src/xterm.js b/src/xterm.js index 353b96185..6649a0333 100644 --- a/src/xterm.js +++ b/src/xterm.js @@ -425,6 +425,9 @@ Terminal.prototype.setOption = function(key, value) { } this[key] = value; this.options[key] = value; + switch (key) { + case 'cursorBlink': this.element.classList.toggle('xterm-cursor-blink', value); break; + } }; /** @@ -581,6 +584,7 @@ Terminal.prototype.open = function(parent) { this.element.classList.add('terminal'); this.element.classList.add('xterm'); this.element.classList.add('xterm-theme-' + this.theme); + this.element.classList.toggle('xterm-cursor-blink', this.options.cursorBlink); this.element.style.height this.element.setAttribute('tabindex', 0); @@ -1193,11 +1197,7 @@ Terminal.prototype.refresh = function(start, end) { } if (data !== this.defAttr) { if (data === -1) { - out += ''; + out += ''; } else { var classNames = [];