diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2022-09-06 23:17:47 +0200 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2022-09-07 13:04:30 +0200 |
commit | 976e7bfbb4d9f90f0d666e547b15720290ba4389 (patch) | |
tree | 966efac5ad1dda9d952aff0224e7bbb273bd487b /xP | |
parent | 5fd76ba6f90f3d5c341f4ce7ca23560497e899a3 (diff) | |
download | xK-976e7bfbb4d9f90f0d666e547b15720290ba4389.tar.gz xK-976e7bfbb4d9f90f0d666e547b15720290ba4389.tar.xz xK-976e7bfbb4d9f90f0d666e547b15720290ba4389.zip |
xP: separate input buffers
Diffstat (limited to 'xP')
-rw-r--r-- | xP/public/xP.js | 23 |
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', { |