From 976e7bfbb4d9f90f0d666e547b15720290ba4389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Tue, 6 Sep 2022 23:17:47 +0200 Subject: [PATCH] xP: separate input buffers --- xP/public/xP.js | 23 +++++++++++++++-------- 1 file 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', {