« get me outta code hell

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
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/Root.js6
-rw-r--r--ui/form/FocusElement.js1
-rw-r--r--ui/form/TextInput.js1
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
   }