diff options
author | liam4 <towerofnix@gmail.com> | 2017-07-03 21:13:50 -0300 |
---|---|---|
committer | liam4 <towerofnix@gmail.com> | 2017-07-03 21:13:50 -0300 |
commit | b087c428ba492715626a7875185f9ba18fb30b3e (patch) | |
tree | c7ca597804b9cb3b13e43782d95b0a24fb83a73e /ui | |
parent | 930d61b9f067346f467d4d84015088f57c54da56 (diff) |
Improve cursor display
- Whether the cursor is displayed or not is now based on the cursorVisible property rather than whether cursorX and cursorY are set or not. - The actual shell cursor is now invisible... this is objectively an act of Evil, though! This doesn't look like too hard to fix, thankfully. - A new cleanCursor function has been added to ansi.js.
Diffstat (limited to 'ui')
-rw-r--r-- | ui/Root.js | 6 | ||||
-rw-r--r-- | ui/form/FocusElement.js | 1 | ||||
-rw-r--r-- | ui/form/TextInput.js | 1 |
3 files changed, 4 insertions, 4 deletions
diff --git a/ui/Root.js b/ui/Root.js index b170f99..fc494a7 100644 --- a/ui/Root.js +++ b/ui/Root.js @@ -50,9 +50,7 @@ module.exports = class Root extends DisplayElement { // Render the cursor, based on the cursorX and cursorY of the currently // selected element. if ( - this.selected && - typeof this.selected.cursorX === 'number' && - typeof this.selected.cursorY === 'number' && + this.selected && this.selected.cursorVisible && (Date.now() - this.cursorBlinkOffset) % 1000 < 500 ) { writable.write(ansi.moveCursor( @@ -61,7 +59,7 @@ module.exports = class Root extends DisplayElement { writable.write('I') writable.write(ansi.resetAttributes()) } - writable.write(ansi.moveCursor(0, 0)) + writable.write(ansi.hideCursor()) } cursorMoved() { diff --git a/ui/form/FocusElement.js b/ui/form/FocusElement.js index 5967e26..18f13bf 100644 --- a/ui/form/FocusElement.js +++ b/ui/form/FocusElement.js @@ -6,6 +6,7 @@ module.exports = class FocusElement extends DisplayElement { constructor() { super() + this.cursorVisible = false this.cursorX = 0 this.cursorY = 0 diff --git a/ui/form/TextInput.js b/ui/form/TextInput.js index fc59cbb..a10a26f 100644 --- a/ui/form/TextInput.js +++ b/ui/form/TextInput.js @@ -11,6 +11,7 @@ module.exports = class TextInput extends FocusElement { super() this.value = '' + this.cursorVisible = true this.cursorIndex = 0 this.scrollChars = 0 } |