summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xP/public/xP.js23
1 files changed, 15 insertions, 8 deletions
diff --git a/xP/public/xP.js b/xP/public/xP.js
index dba8a99..19a769a 100644
--- a/xP/public/xP.js
+++ b/xP/public/xP.js
@@ -163,13 +163,22 @@ rpc.addEventListener('BufferRemove', event => {
})
rpc.addEventListener('BufferActivate', event => {
- let e = event.detail
+ let e = event.detail, b = buffers.get(e.bufferName)
+ let old = buffers.get(bufferCurrent)
bufferCurrent = e.bufferName
- setTimeout(() => {
- let el = document.getElementById('input')
- if (el !== null)
- el.focus()
- })
+
+ let textarea = document.getElementById('input')
+ if (textarea === null)
+ return
+
+ textarea.focus()
+ if (old !== undefined)
+ old.input = textarea.value
+
+ if (b !== undefined)
+ textarea.value = b.input || ''
+ else
+ textarea.value = ''
})
rpc.addEventListener('BufferLine', event => {
@@ -388,8 +397,6 @@ function onKeyDown(event) {
event.preventDefault()
}
-// TODO: This should be remembered across buffer switches,
-// and we'll probably have to intercept /all/ key presses.
let Input = {
view: vnode => {
return m('textarea#input', {