« get me outta code hell

Improve cursor display - tui-lib - Pure Node.js library for making visual command-line programs (ala vim, ncdu)
about summary refs log tree commit diff
path: root/ui/Root.js
diff options
context:
space:
mode:
authorliam4 <towerofnix@gmail.com>2017-07-03 21:13:50 -0300
committerliam4 <towerofnix@gmail.com>2017-07-03 21:13:50 -0300
commitb087c428ba492715626a7875185f9ba18fb30b3e (patch)
treec7ca597804b9cb3b13e43782d95b0a24fb83a73e /ui/Root.js
parent930d61b9f067346f467d4d84015088f57c54da56 (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/Root.js')
-rw-r--r--ui/Root.js6
1 files changed, 2 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() {